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!