takezoe / gitbucket-ci-plugin

GitBucket plug-in that adds simple CI ability to GitBucket.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

MySQL 5.6 can't have TEXT/BLOB column defalut value

nantan opened this issue · comments

I got this error when starting GitBucket or reloading plugins.

ERROR gitbucket.core.plugin.PluginRegistry - Error during plugin initialization: gitbucket-ci-plugin-gitbucket_4.29.0-1.6.2.jar
java.sql.SQLSyntaxErrorException: (conn=14746) BLOB, TEXT, GEOMETRY or JSON column 'BUILD_SCRIPT' can't have a default value

Caused by: java.sql.SQLException: BLOB, TEXT, GEOMETRY or JSON column 'BUILD_SCRIPT' can't have a default value
Query is: ALTER TABLE gitbucket.CI_RESULT ADD QUEUED_TIME datetime NULL, ADD EXIT_CODE INT NULL, ADD BUILD_SCRIPT TEXT NOT NULL DEFAULT ''

@nantan Thanks for reporting. I published a fixed version 1.6.3. Could you try it?

I tried it, but I got this error when reloading plugins.

17:26:19.599 [qtp824318946-42] ERROR gitbucket.core.plugin.PluginRegistry - Error during plugin initialization: gitbucket-ci-plugin-gitbucket_4.25.0-1.6.3.jar
java.sql.SQLSyntaxErrorException: (conn=17709) Duplicate column name 'QUEUED_TIME'

So, I recreated the CI_RESULT table manually without QUEUED_TIME / EXIT_CODE / BUILD_SCRIPT columns.
But I got the following error.

17:29:26.791 [qtp824318946-40] ERROR gitbucket.core.plugin.PluginRegistry - Error during plugin initialization: gitbucket-ci-plugin-gitbucket_4.25.0-1.6.3.jar
java.lang.NullPointerException: null
	at liquibase.datatype.DataTypeFactory.fromDescription(DataTypeFactory.java:97)
	at liquibase.sqlgenerator.core.SetNullableGenerator.generateSql(SetNullableGenerator.java:68)
	at liquibase.sqlgenerator.core.SetNullableGenerator.generateSql(SetNullableGenerator.java:21)
	at liquibase.sqlgenerator.SqlGeneratorChain.generateSql(SqlGeneratorChain.java:30)
	at liquibase.sqlgenerator.SqlGeneratorFactory.generateSql(SqlGeneratorFactory.java:208)
	at liquibase.sqlgenerator.SqlGeneratorFactory.generateSql(SqlGeneratorFactory.java:197)
	at io.github.gitbucket.solidbase.migration.LiquibaseMigration.migrate(LiquibaseMigration.java:91)
	at io.github.gitbucket.solidbase.migration.LiquibaseMigration.migrate(LiquibaseMigration.java:54)
	at io.github.gitbucket.solidbase.Solidbase.migrate(Solidbase.java:45)
	at io.github.gitbucket.solidbase.Solidbase.migrate(Solidbase.java:29)
	at gitbucket.core.plugin.PluginRegistry$.$anonfun$initialize$3(PluginRegistry.scala:352)
	at gitbucket.core.plugin.PluginRegistry$.$anonfun$initialize$3$adapted(PluginRegistry.scala:328)
	at scala.collection.immutable.List.foreach(List.scala:388)
	at gitbucket.core.plugin.PluginRegistry$.initialize(PluginRegistry.scala:328)
	at gitbucket.core.plugin.PluginRegistry$.reload(PluginRegistry.scala:219)
	at gitbucket.core.controller.SystemSettingsControllerBase.$anonfun$$init$$24(SystemSettingsController.scala:390)
	at org.scalatra.ScalatraBase.liftAction(ScalatraBase.scala:280)
	at org.scalatra.ScalatraBase.$anonfun$invoke$1(ScalatraBase.scala:274)
	at org.scalatra.ApiFormats.withRouteMultiParams(ApiFormats.scala:183)
	at org.scalatra.ApiFormats.withRouteMultiParams$(ApiFormats.scala:169)
	at gitbucket.core.controller.ControllerBase.withRouteMultiParams(ControllerBase.scala:34)
	at org.scalatra.ScalatraBase.invoke(ScalatraBase.scala:273)
	at org.scalatra.ScalatraBase.invoke$(ScalatraBase.scala:272)
	at gitbucket.core.controller.ControllerBase.org$scalatra$json$JsonSupport$$super$invoke(ControllerBase.scala:34)
	at org.scalatra.json.JsonSupport.$anonfun$invoke$1(JsonSupport.scala:90)
	at org.scalatra.ApiFormats.withRouteMultiParams(ApiFormats.scala:183)
	at org.scalatra.ApiFormats.withRouteMultiParams$(ApiFormats.scala:169)
	at gitbucket.core.controller.ControllerBase.withRouteMultiParams(ControllerBase.scala:34)
	at org.scalatra.json.JsonSupport.invoke(JsonSupport.scala:84)
	at org.scalatra.json.JsonSupport.invoke$(JsonSupport.scala:83)
	at gitbucket.core.controller.ControllerBase.invoke(ControllerBase.scala:34)
	at org.scalatra.ScalatraBase.$anonfun$runRoutes$3(ScalatraBase.scala:248)
	at scala.Option.flatMap(Option.scala:171)
	at org.scalatra.ScalatraBase.$anonfun$runRoutes$1(ScalatraBase.scala:246)
	at scala.collection.immutable.Stream.flatMap(Stream.scala:489)
	at org.scalatra.ScalatraBase.runRoutes(ScalatraBase.scala:245)
	at org.scalatra.ScalatraBase.runRoutes$(ScalatraBase.scala:243)
	at gitbucket.core.controller.ControllerBase.runRoutes(ControllerBase.scala:34)
	at org.scalatra.ScalatraBase.runActions$1(ScalatraBase.scala:169)
	at org.scalatra.ScalatraBase.$anonfun$executeRoutes$6(ScalatraBase.scala:181)
	at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
	at org.scalatra.ScalatraBase.cradleHalt(ScalatraBase.scala:199)
	at org.scalatra.ScalatraBase.executeRoutes(ScalatraBase.scala:181)
	at org.scalatra.ScalatraBase.executeRoutes$(ScalatraBase.scala:150)
	at gitbucket.core.controller.ControllerBase.executeRoutes(ControllerBase.scala:34)
	at org.scalatra.ScalatraBase.$anonfun$handle$1(ScalatraBase.scala:123)
	at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
	at scala.util.DynamicVariable.withValue(DynamicVariable.scala:58)
	at org.scalatra.DynamicScope.withResponse(DynamicScope.scala:79)
	at org.scalatra.DynamicScope.withResponse$(DynamicScope.scala:77)
	at gitbucket.core.controller.ControllerBase.withResponse(ControllerBase.scala:34)
	at org.scalatra.DynamicScope.$anonfun$withRequestResponse$1(DynamicScope.scala:59)
	at scala.util.DynamicVariable.withValue(DynamicVariable.scala:58)
	at org.scalatra.DynamicScope.withRequest(DynamicScope.scala:70)
	at org.scalatra.DynamicScope.withRequest$(DynamicScope.scala:68)
	at gitbucket.core.controller.ControllerBase.withRequest(ControllerBase.scala:34)
	at org.scalatra.DynamicScope.withRequestResponse(DynamicScope.scala:58)
	at org.scalatra.DynamicScope.withRequestResponse$(DynamicScope.scala:56)
	at gitbucket.core.controller.ControllerBase.withRequestResponse(ControllerBase.scala:34)
	at org.scalatra.ScalatraBase.handle(ScalatraBase.scala:123)
	at org.scalatra.ScalatraBase.handle$(ScalatraBase.scala:119)
	at gitbucket.core.controller.ControllerBase.org$scalatra$servlet$ServletBase$$super$handle(ControllerBase.scala:34)
	at org.scalatra.servlet.ServletBase.handle(ServletBase.scala:53)
	at org.scalatra.servlet.ServletBase.handle$(ServletBase.scala:46)
	at gitbucket.core.controller.ControllerBase.org$scalatra$FlashMapSupport$$super$handle(ControllerBase.scala:34)
	at org.scalatra.FlashMapSupport.$anonfun$handle$1(FlashMap.scala:170)
	at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
	at scala.util.DynamicVariable.withValue(DynamicVariable.scala:58)
	at org.scalatra.DynamicScope.withRequest(DynamicScope.scala:70)
	at org.scalatra.DynamicScope.withRequest$(DynamicScope.scala:68)
	at gitbucket.core.controller.ControllerBase.withRequest(ControllerBase.scala:34)
	at org.scalatra.FlashMapSupport.handle(FlashMap.scala:145)
	at org.scalatra.FlashMapSupport.handle$(FlashMap.scala:144)
	at gitbucket.core.controller.ControllerBase.handle(ControllerBase.scala:34)
	at org.scalatra.ScalatraFilter.$anonfun$doFilter$1(ScalatraFilter.scala:41)
	at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
	at scala.util.DynamicVariable.withValue(DynamicVariable.scala:58)
	at org.scalatra.ScalatraFilter.doFilter(ScalatraFilter.scala:41)
	at org.scalatra.ScalatraFilter.doFilter$(ScalatraFilter.scala:36)
	at gitbucket.core.controller.ControllerBase.doFilter(ControllerBase.scala:72)
	at gitbucket.core.servlet.CompositeScalatraFilter.$anonfun$doFilter$2(CompositeScalatraFilter.scala:52)
	at gitbucket.core.servlet.CompositeScalatraFilter.$anonfun$doFilter$2$adapted(CompositeScalatraFilter.scala:49)
	at scala.collection.immutable.List.foreach(List.scala:388)
	at scala.collection.generic.TraversableForwarder.foreach(TraversableForwarder.scala:34)
	at scala.collection.generic.TraversableForwarder.foreach$(TraversableForwarder.scala:34)
	at scala.collection.mutable.ListBuffer.foreach(ListBuffer.scala:43)
	at gitbucket.core.servlet.CompositeScalatraFilter.doFilter(CompositeScalatraFilter.scala:49)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
	at gitbucket.core.servlet.PluginControllerFilter.doFilter(PluginControllerFilter.scala:49)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
	at org.scalatra.ScalatraFilter.$anonfun$doNotFound$1(ScalatraFilter.scala:79)
	at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
	at org.scalatra.ScalatraBase.$anonfun$executeRoutes$5(ScalatraBase.scala:172)
	at scala.Option.getOrElse(Option.scala:121)
	at org.scalatra.ScalatraBase.$anonfun$executeRoutes$3(ScalatraBase.scala:172)
	at scala.Option.getOrElse(Option.scala:121)
	at org.scalatra.ScalatraBase.runActions$1(ScalatraBase.scala:172)
	at org.scalatra.ScalatraBase.$anonfun$executeRoutes$6(ScalatraBase.scala:181)
	at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
	at org.scalatra.ScalatraBase.cradleHalt(ScalatraBase.scala:199)
	at org.scalatra.ScalatraBase.executeRoutes(ScalatraBase.scala:181)
	at org.scalatra.ScalatraBase.executeRoutes$(ScalatraBase.scala:150)
	at gitbucket.core.controller.ControllerBase.executeRoutes(ControllerBase.scala:34)
	at org.scalatra.ScalatraBase.$anonfun$handle$1(ScalatraBase.scala:123)
	at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
	at scala.util.DynamicVariable.withValue(DynamicVariable.scala:58)
	at org.scalatra.DynamicScope.withResponse(DynamicScope.scala:79)
	at org.scalatra.DynamicScope.withResponse$(DynamicScope.scala:77)
	at gitbucket.core.controller.ControllerBase.withResponse(ControllerBase.scala:34)
	at org.scalatra.DynamicScope.$anonfun$withRequestResponse$1(DynamicScope.scala:59)
	at scala.util.DynamicVariable.withValue(DynamicVariable.scala:58)
	at org.scalatra.DynamicScope.withRequest(DynamicScope.scala:70)
	at org.scalatra.DynamicScope.withRequest$(DynamicScope.scala:68)
	at gitbucket.core.controller.ControllerBase.withRequest(ControllerBase.scala:34)
	at org.scalatra.DynamicScope.withRequestResponse(DynamicScope.scala:58)
	at org.scalatra.DynamicScope.withRequestResponse$(DynamicScope.scala:56)
	at gitbucket.core.controller.ControllerBase.withRequestResponse(ControllerBase.scala:34)
	at org.scalatra.ScalatraBase.handle(ScalatraBase.scala:123)
	at org.scalatra.ScalatraBase.handle$(ScalatraBase.scala:119)
	at gitbucket.core.controller.ControllerBase.org$scalatra$servlet$ServletBase$$super$handle(ControllerBase.scala:34)
	at org.scalatra.servlet.ServletBase.handle(ServletBase.scala:53)
	at org.scalatra.servlet.ServletBase.handle$(ServletBase.scala:46)
	at gitbucket.core.controller.ControllerBase.org$scalatra$FlashMapSupport$$super$handle(ControllerBase.scala:34)
	at org.scalatra.FlashMapSupport.$anonfun$handle$1(FlashMap.scala:170)
	at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
	at scala.util.DynamicVariable.withValue(DynamicVariable.scala:58)
	at org.scalatra.DynamicScope.withRequest(DynamicScope.scala:70)
	at org.scalatra.DynamicScope.withRequest$(DynamicScope.scala:68)
	at gitbucket.core.controller.ControllerBase.withRequest(ControllerBase.scala:34)
	at org.scalatra.FlashMapSupport.handle(FlashMap.scala:145)
	at org.scalatra.FlashMapSupport.handle$(FlashMap.scala:144)
	at gitbucket.core.controller.ControllerBase.handle(ControllerBase.scala:34)
	at org.scalatra.ScalatraFilter.$anonfun$doFilter$1(ScalatraFilter.scala:41)
	at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)
	at scala.util.DynamicVariable.withValue(DynamicVariable.scala:58)
	at org.scalatra.ScalatraFilter.doFilter(ScalatraFilter.scala:41)
	at org.scalatra.ScalatraFilter.doFilter$(ScalatraFilter.scala:36)
	at gitbucket.core.controller.ControllerBase.doFilter(ControllerBase.scala:72)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
	at gitbucket.core.servlet.TransactionFilter.$anonfun$doFilter$1(TransactionFilter.scala:39)
	at gitbucket.core.servlet.TransactionFilter.$anonfun$doFilter$1$adapted(TransactionFilter.scala:30)
	at com.github.takezoe.slick.blocking.BlockingJdbcProfile$BlockingAPI$BlockingDatabase.$anonfun$withTransaction$2(BlockingProfile.scala:207)
	at slick.JdbcProfileBlockingSession$BlockingSession.withTransaction(TransactionalJdbcBackend.scala:26)
	at com.github.takezoe.slick.blocking.BlockingJdbcProfile$BlockingAPI$BlockingDatabase.$anonfun$withTransaction$1(BlockingProfile.scala:207)
	at com.github.takezoe.slick.blocking.BlockingJdbcProfile$BlockingAPI$BlockingDatabase.withSession(BlockingProfile.scala:200)
	at com.github.takezoe.slick.blocking.BlockingJdbcProfile$BlockingAPI$BlockingDatabase.withTransaction(BlockingProfile.scala:207)
	at gitbucket.core.servlet.TransactionFilter.doFilter(TransactionFilter.scala:30)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1634)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1317)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1219)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
	at org.eclipse.jetty.server.handler.StatisticsHandler.handle(StatisticsHandler.java:169)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
	at org.eclipse.jetty.server.Server.handle(Server.java:531)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:352)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:281)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:102)
	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:762)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:680)
	at java.lang.Thread.run(Thread.java:745)

Have QUEUED_TIME and EXIT_CODE been added after this error?

I realized columnDataType is required for MySQL. Fixed in 34c4e5c and released 1.6.4. Please try again.

Also I added test case for database migration triggered by your report. Thanks!

1.6.4 works fine. Thank you very much!