【问题标题】:Failed to upgrade SonarQube from 4.5.2 to 5.0无法将 SonarQube 从 4.5.2 升级到 5.0
【发布时间】:2026-02-16 04:35:01
【问题描述】:

升级到 SonarQube 的最新主要版本 (5.0) 失败。我们已遵循本指南http://docs.sonarqube.org/display/SONAR/Upgrading。如果我们尝试使用干净的数据库,一切正常,但这不是一个可接受的解决方案,因为我们需要所有历史记录。

浏览器出错:

Impossible to upgrade database 

Migration failed: An error has occurred, all later migrations canceled: Fail to execute database migration: org.sonar.server.db.migrations.v50.PopulateProjectsUuidColumnsMigration . Please check logs.

系统信息:

  • 操作系统:Linux / amd64 / 3.2.0-4-amd64
  • Java 版本:1.7.0_21-b11
  • 版本:4.5.2
  • 数据库:MySQL 5.5.41-0+wheezy1
  • 数据库:URL jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance
  • 数据库驱动程序:MySQL 连接器 Java mysql-connector-java-5.1.27 ( 修订: alexander.soklakov@oracle.com-20131021093118-gtm1bh1vb450xipt)

sonar.log 中的堆栈跟踪:

2015.02.05 08:42:02 INFO  web[DbMigration]  ==  AddProjectUuidColumns: migrated (2.3040s) =================================
2015.02.05 08:42:02 INFO  web[DbMigration]
2015.02.05 08:42:02 INFO  web[DbMigration]  ==  PopulateProjectsUuidColumns: migrating ====================================
2015.02.05 08:42:05 ERROR web[o.s.s.d.m.DatabaseMigrator]  Fail to execute database migration: org.sonar.server.db.migrations.v50.PopulateProjectsUuidColumnsMigration
org.apache.ibatis.exceptions.PersistenceException:
### Error querying database.  Cause: java.lang.NullPointerException
### Cause: java.lang.NullPointerException
    at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:26) ~[mybatis-3.2.7.jar:3.2.7]
    at org.apache.ibatis.session.defaults.DefaultSqlSession.select(DefaultSqlSession.java:130) ~[mybatis-3.2.7.jar:3.2.7]
    at org.apache.ibatis.session.defaults.DefaultSqlSession.select(DefaultSqlSession.java:122) ~[mybatis-3.2.7.jar:3.2.7]
    at org.sonar.core.persistence.DbSession.select(DbSession.java:125) ~[sonar-core-5.0.jar:na]
    at org.sonar.server.db.migrations.v50.PopulateProjectsUuidColumnsMigration.execute(PopulateProjectsUuidColumnsMigration.java:65) ~[sonar-server-5.0.jar:na]
    at org.sonar.server.db.migrations.DatabaseMigrator.executeMigration(DatabaseMigrator.java:94) ~[sonar-server-5.0.jar:na]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_20]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_20]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_20]
    at java.lang.reflect.Method.invoke(Method.java:483) ~[na:1.8.0_20]
    at org.jruby.javasupport.JavaMethod.invokeDirectWithExceptionHandling(JavaMethod.java:455) [jruby-complete-1.7.9.jar:na]
    at org.jruby.javasupport.JavaMethod.invokeDirect(JavaMethod.java:316) [jruby-complete-1.7.9.jar:na]
    at org.jruby.java.invokers.InstanceMethodInvoker.call(InstanceMethodInvoker.java:61) [jruby-complete-1.7.9.jar:na]
    at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:326) [jruby-complete-1.7.9.jar:na]
    at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:170) [jruby-complete-1.7.9.jar:na]
    at org.jruby.ast.CallOneArgNode.interpret(CallOneArgNode.java:57) [jruby-complete-1.7.9.jar:na]
    at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105) [jruby-complete-1.7.9.jar:na]
    at org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:74) [jruby-complete-1.7.9.jar:na]
    at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:182) [jruby-complete-1.7.9.jar:na]
    at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:198) [jruby-complete-1.7.9.jar:na]
    at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:326) [jruby-complete-1.7.9.jar:na]
    at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:170) [jruby-complete-1.7.9.jar:na]
    at org.jruby.ast.FCallOneArgNode.interpret(FCallOneArgNode.java:36) [jruby-complete-1.7.9.jar:na]
    at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105) [jruby-complete-1.7.9.jar:na]
    at org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:74) [jruby-complete-1.7.9.jar:na]
    at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:161) [jruby-complete-1.7.9.jar:na]
    at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:190) [jruby-complete-1.7.9.jar:na]
    at org.jruby.internal.runtime.methods.AliasMethod.call(AliasMethod.java:81) [jruby-complete-1.7.9.jar:na]
    at org.jruby.RubyClass.finvoke(RubyClass.java:527) [jruby-complete-1.7.9.jar:na]
    at org.jruby.RubyBasicObject.send(RubyBasicObject.java:2590) [jruby-complete-1.7.9.jar:na]
    at org.jruby.RubyKernel.send(RubyKernel.java:2223) [jruby-complete-1.7.9.jar:na]
    at org.jruby.RubyKernel$INVOKER$s$send.call(RubyKernel$INVOKER$s$send.gen) [jruby-complete-1.7.9.jar:na]
    at org.jruby.internal.runtime.methods.JavaMethod$JavaMethodOneOrNBlock.call(JavaMethod.java:350) [jruby-complete-1.7.9.jar:na]
    at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:326) [jruby-complete-1.7.9.jar:na]
    at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:170) [jruby-complete-1.7.9.jar:na]
    at org.jruby.ast.FCallOneArgNode.interpret(FCallOneArgNode.java:36) [jruby-complete-1.7.9.jar:na]
    at org.jruby.ast.LocalAsgnNode.interpret(LocalAsgnNode.java:123) [jruby-complete-1.7.9.jar:na]
    at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105) [jruby-complete-1.7.9.jar:na]
    at org.jruby.evaluator.ASTInterpreter.INTERPRET_BLOCK(ASTInterpreter.java:112) [jruby-complete-1.7.9.jar:na]
    at org.jruby.runtime.InterpretedBlock.evalBlockBody(InterpretedBlock.java:384) [jruby-complete-1.7.9.jar:na]
    at org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:303) [jruby-complete-1.7.9.jar:na]
    at org.jruby.runtime.InterpretedBlock.yieldSpecific(InterpretedBlock.java:229) [jruby-complete-1.7.9.jar:na]
    at org.jruby.runtime.Block.yieldSpecific(Block.java:111) [jruby-complete-1.7.9.jar:na]
    at org.jruby.ast.ZYieldNode.interpret(ZYieldNode.java:25) [jruby-complete-1.7.9.jar:na]
    at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105) [jruby-complete-1.7.9.jar:na]
    at org.jruby.ast.BlockNode.interpret(BlockNode.java:71) [jruby-complete-1.7.9.jar:na]
    at org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:74) [jruby-complete-1.7.9.jar:na]
    at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:161) [jruby-complete-1.7.9.jar:na]
    at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:190) [jruby-complete-1.7.9.jar:na]
    at org.jruby.internal.runtime.methods.WrapperMethod.call(WrapperMethod.java:74) [jruby-complete-1.7.9.jar:na]
    at org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:143) [jruby-complete-1.7.9.jar:na]
    at org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:154) [jruby-complete-1.7.9.jar:na]
    at org.jruby.ast.CallNoArgBlockNode.interpret(CallNoArgBlockNode.java:64) [jruby-complete-1.7.9.jar:na]
    at org.jruby.ast.LocalAsgnNode.interpret(LocalAsgnNode.java:123) [jruby-complete-1.7.9.jar:na]
    at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105) [jruby-complete-1.7.9.jar:na]
    at org.jruby.ast.BlockNode.interpret(BlockNode.java:71) [jruby-complete-1.7.9.jar:na]
    at org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:74) [jruby-complete-1.7.9.jar:na]
    at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:204) [jruby-complete-1.7.9.jar:na]
    at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:206) [jruby-complete-1.7.9.jar:na]
    at org.jruby.RubyClass.finvoke(RubyClass.java:567) [jruby-complete-1.7.9.jar:na]
    at org.jruby.RubyBasicObject.send(RubyBasicObject.java:2595) [jruby-complete-1.7.9.jar:na]
    at org.jruby.RubyKernel.send(RubyKernel.java:2227) [jruby-complete-1.7.9.jar:na]
    at org.jruby.RubyKernel$INVOKER$s$send.call(RubyKernel$INVOKER$s$send.gen) [jruby-complete-1.7.9.jar:na]
    at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:356) [jruby-complete-1.7.9.jar:na]
    at org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:213) [jruby-complete-1.7.9.jar:na]
    at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:217) [jruby-complete-1.7.9.jar:na]
    at org.jruby.ast.CallSpecialArgBlockPassNode.interpret(CallSpecialArgBlockPassNode.java:66) [jruby-complete-1.7.9.jar:na]
    at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105) [jruby-complete-1.7.9.jar:na]
    at org.jruby.ast.RescueNode.executeBody(RescueNode.java:221) [jruby-complete-1.7.9.jar:na]
    at org.jruby.ast.RescueNode.interpret(RescueNode.java:116) [jruby-complete-1.7.9.jar:na]
    at org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:74) [jruby-complete-1.7.9.jar:na]
    at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:182) [jruby-complete-1.7.9.jar:na]
    at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:198) [jruby-complete-1.7.9.jar:na]
    at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:168) [jruby-complete-1.7.9.jar:na]
    at org.jruby.ast.CallOneArgNode.interpret(CallOneArgNode.java:57) [jruby-complete-1.7.9.jar:na]
    at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105) [jruby-complete-1.7.9.jar:na]
    at org.jruby.ast.BlockNode.interpret(BlockNode.java:71) [jruby-complete-1.7.9.jar:na]
    at org.jruby.evaluator.ASTInterpreter.INTERPRET_BLOCK(ASTInterpreter.java:112) [jruby-complete-1.7.9.jar:na]
    at org.jruby.runtime.InterpretedBlock.evalBlockBody(InterpretedBlock.java:384) [jruby-complete-1.7.9.jar:na]
    at org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:336) [jruby-complete-1.7.9.jar:na]
    at org.jruby.runtime.BlockBody.call(BlockBody.java:73) [jruby-complete-1.7.9.jar:na]
    at org.jruby.runtime.Block.call(Block.java:101) [jruby-complete-1.7.9.jar:na]
    at org.jruby.RubyProc.call(RubyProc.java:290) [jruby-complete-1.7.9.jar:na]
    at org.jruby.RubyProc.call(RubyProc.java:224) [jruby-complete-1.7.9.jar:na]
    at org.jruby.RubyProc$INVOKER$i$0$0$call.call(RubyProc$INVOKER$i$0$0$call.gen) [jruby-complete-1.7.9.jar:na]
    at org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:202) [jruby-complete-1.7.9.jar:na]
    at org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:198) [jruby-complete-1.7.9.jar:na]
    at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:134) [jruby-complete-1.7.9.jar:na]
    at org.jruby.ast.CallNoArgNode.interpret(CallNoArgNode.java:60) [jruby-complete-1.7.9.jar:na]
    at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105) [jruby-complete-1.7.9.jar:na]
    at org.jruby.ast.IfNode.interpret(IfNode.java:118) [jruby-complete-1.7.9.jar:na]
    at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105) [jruby-complete-1.7.9.jar:na]
    at org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:74) [jruby-complete-1.7.9.jar:na]
    at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:161) [jruby-complete-1.7.9.jar:na]
    at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:190) [jruby-complete-1.7.9.jar:na]
    at org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:143) [jruby-complete-1.7.9.jar:na]
    at org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:154) [jruby-complete-1.7.9.jar:na]
    at org.jruby.ast.FCallNoArgBlockNode.interpret(FCallNoArgBlockNode.java:32) [jruby-complete-1.7.9.jar:na]
    at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105) [jruby-complete-1.7.9.jar:na]
    at org.jruby.ast.RescueNode.executeBody(RescueNode.java:221) [jruby-complete-1.7.9.jar:na]
    at org.jruby.ast.RescueNode.interpret(RescueNode.java:116) [jruby-complete-1.7.9.jar:na]
    at org.jruby.ast.BeginNode.interpret(BeginNode.java:83) [jruby-complete-1.7.9.jar:na]
    at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105) [jruby-complete-1.7.9.jar:na]
    at org.jruby.ast.BlockNode.interpret(BlockNode.java:71) [jruby-complete-1.7.9.jar:na]
    at org.jruby.evaluator.ASTInterpreter.INTERPRET_BLOCK(ASTInterpreter.java:112) [jruby-complete-1.7.9.jar:na]
    at org.jruby.runtime.InterpretedBlock.evalBlockBody(InterpretedBlock.java:384) [jruby-complete-1.7.9.jar:na]
    at org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:357) [jruby-complete-1.7.9.jar:na]
    at org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:312) [jruby-complete-1.7.9.jar:na]
    at org.jruby.runtime.Block.yield(Block.java:142) [jruby-complete-1.7.9.jar:na]
    at org.jruby.RubyArray.eachCommon(RubyArray.java:1606) [jruby-complete-1.7.9.jar:na]
    at org.jruby.RubyArray.each(RubyArray.java:1613) [jruby-complete-1.7.9.jar:na]
    at org.jruby.RubyArray$INVOKER$i$0$0$each.call(RubyArray$INVOKER$i$0$0$each.gen) [jruby-complete-1.7.9.jar:na]
    at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:316) [jruby-complete-1.7.9.jar:na]
    at org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:145) [jruby-complete-1.7.9.jar:na]
    at org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:154) [jruby-complete-1.7.9.jar:na]
    at org.jruby.ast.CallNoArgBlockNode.interpret(CallNoArgBlockNode.java:64) [jruby-complete-1.7.9.jar:na]
    at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105) [jruby-complete-1.7.9.jar:na]
    at org.jruby.ast.BlockNode.interpret(BlockNode.java:71) [jruby-complete-1.7.9.jar:na]
    at org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:74) [jruby-complete-1.7.9.jar:na]
    at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:139) [jruby-complete-1.7.9.jar:na]
    at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:182) [jruby-complete-1.7.9.jar:na]
    at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:306) [jruby-complete-1.7.9.jar:na]
    at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:136) [jruby-complete-1.7.9.jar:na]
    at org.jruby.ast.CallNoArgNode.interpret(CallNoArgNode.java:60) [jruby-complete-1.7.9.jar:na]
    at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105) [jruby-complete-1.7.9.jar:na]
    at org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:74) [jruby-complete-1.7.9.jar:na]
    at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:225) [jruby-complete-1.7.9.jar:na]
    at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:214) [jruby-complete-1.7.9.jar:na]
    at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:346) [jruby-complete-1.7.9.jar:na]
    at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:204) [jruby-complete-1.7.9.jar:na]
    at org.jruby.ast.FCallTwoArgNode.interpret(FCallTwoArgNode.java:38) [jruby-complete-1.7.9.jar:na]
    at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105) [jruby-complete-1.7.9.jar:na]
    at org.jruby.ast.WhenOneArgNode.whenNoTest(WhenOneArgNode.java:27) [jruby-complete-1.7.9.jar:na]
    at org.jruby.ast.WhenOneArgNode.when(WhenOneArgNode.java:45) [jruby-complete-1.7.9.jar:na]
    at org.jruby.ast.CaseNode.interpret(CaseNode.java:132) [jruby-complete-1.7.9.jar:na]
    at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105) [jruby-complete-1.7.9.jar:na]
    at org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:74) [jruby-complete-1.7.9.jar:na]
    at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:182) [jruby-complete-1.7.9.jar:na]
    at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:198) [jruby-complete-1.7.9.jar:na]
    at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:326) [jruby-complete-1.7.9.jar:na]
    at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:170) [jruby-complete-1.7.9.jar:na]
    at org.jruby.ast.CallOneArgNode.interpret(CallOneArgNode.java:57) [jruby-complete-1.7.9.jar:na]
    at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105) [jruby-complete-1.7.9.jar:na]
    at org.jruby.ast.BlockNode.interpret(BlockNode.java:71) [jruby-complete-1.7.9.jar:na]
    at org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:74) [jruby-complete-1.7.9.jar:na]
    at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:139) [jruby-complete-1.7.9.jar:na]
    at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:182) [jruby-complete-1.7.9.jar:na]
    at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:306) [jruby-complete-1.7.9.jar:na]
    at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:136) [jruby-complete-1.7.9.jar:na]
    at org.jruby.ast.CallNoArgNode.interpret(CallNoArgNode.java:60) [jruby-complete-1.7.9.jar:na]
    at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105) [jruby-complete-1.7.9.jar:na]
    at org.jruby.ast.BlockNode.interpret(BlockNode.java:71) [jruby-complete-1.7.9.jar:na]
    at org.jruby.ast.RescueNode.executeBody(RescueNode.java:221) [jruby-complete-1.7.9.jar:na]
    at org.jruby.ast.RescueNode.interpret(RescueNode.java:116) [jruby-complete-1.7.9.jar:na]
    at org.jruby.ast.BeginNode.interpret(BeginNode.java:83) [jruby-complete-1.7.9.jar:na]
    at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105) [jruby-complete-1.7.9.jar:na]
    at org.jruby.evaluator.ASTInterpreter.INTERPRET_BLOCK(ASTInterpreter.java:112) [jruby-complete-1.7.9.jar:na]
    at org.jruby.runtime.InterpretedBlock.evalBlockBody(InterpretedBlock.java:384) [jruby-complete-1.7.9.jar:na]
    at org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:336) [jruby-complete-1.7.9.jar:na]
    at org.jruby.runtime.BlockBody.call(BlockBody.java:73) [jruby-complete-1.7.9.jar:na]
    at org.jruby.runtime.Block.call(Block.java:101) [jruby-complete-1.7.9.jar:na]
    at org.jruby.RubyProc.call(RubyProc.java:290) [jruby-complete-1.7.9.jar:na]
    at org.jruby.RubyProc.call(RubyProc.java:228) [jruby-complete-1.7.9.jar:na]
    at org.jruby.internal.runtime.RubyRunnable.run(RubyRunnable.java:97) [jruby-complete-1.7.9.jar:na]
    at java.lang.Thread.run(Thread.java:745) [na:1.8.0_20]
Caused by: java.lang.NullPointerException: null
    at org.sonar.server.db.migrations.v50.PopulateProjectsUuidColumnsMigration.updateComponent(PopulateProjectsUuidColumnsMigration.java:142) ~[sonar-server-5.0.jar:na]
    at org.sonar.server.db.migrations.v50.PopulateProjectsUuidColumnsMigration.migrateEnabledComponents(PopulateProjectsUuidColumnsMigration.java:108) ~[sonar-server-5.0.jar:na]
    at org.sonar.server.db.migrations.v50.PopulateProjectsUuidColumnsMigration.access$000(PopulateProjectsUuidColumnsMigration.java:48) ~[sonar-server-5.0.jar:na]
    at org.sonar.server.db.migrations.v50.PopulateProjectsUuidColumnsMigration$1.handleResult(PopulateProjectsUuidColumnsMigration.java:70) ~[sonar-server-5.0.jar:na]
    at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.callResultHandler(DefaultResultSetHandler.java:306) ~[mybatis-3.2.7.jar:3.2.7]
    at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.storeObject(DefaultResultSetHandler.java:300) ~[mybatis-3.2.7.jar:3.2.7]
    at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValuesForSimpleResultMap(DefaultResultSetHandler.java:292) ~[mybatis-3.2.7.jar:3.2.7]
    at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValues(DefaultResultSetHandler.java:266) ~[mybatis-3.2.7.jar:3.2.7]
    at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSet(DefaultResultSetHandler.java:239) ~[mybatis-3.2.7.jar:3.2.7]
    at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSets(DefaultResultSetHandler.java:150) ~[mybatis-3.2.7.jar:3.2.7]
    at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:60) ~[mybatis-3.2.7.jar:3.2.7]
    at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:73) ~[mybatis-3.2.7.jar:3.2.7]
    at org.apache.ibatis.executor.ReuseExecutor.doQuery(ReuseExecutor.java:57) ~[mybatis-3.2.7.jar:3.2.7]
    at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:267) ~[mybatis-3.2.7.jar:3.2.7]
    at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:137) ~[mybatis-3.2.7.jar:3.2.7]
    at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:96) ~[mybatis-3.2.7.jar:3.2.7]
    at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:77) ~[mybatis-3.2.7.jar:3.2.7]
    at org.apache.ibatis.session.defaults.DefaultSqlSession.select(DefaultSqlSession.java:128) ~[mybatis-3.2.7.jar:3.2.7]
    ... 163 common frames omitted

【问题讨论】:

  • 您好,您似乎有一些没有范围的项目,这不是预期的。您能否将 SQL 查询的结果发送给我们:“SELECT * FROM projects WHERE scope IS NULL;”谢谢
  • `mysql> SELECT * FROM projects WHERE scope IS NULL;空集(0.00 秒)mysql> 从项目中选择不同的范围; +--------+ |范围 | +--------+ |公关 | |目录 | |菲尔 | +-------+ 3 行(0.02 秒)`
  • 你能把结果放在pastebin.com 并把链接发给我们吗?
  • 好的,问题不是来自没有范围的项目。您能否激活完整日志(在您的 sonar.properties 中设置 sonar.log.profilingLevel=FULL),重新启动您的服务器,并在“INFO web[DbMigration] == PopulateProjectsUuidColumns”行之后给我们日志?

标签: java mysql sonarqube upgrade server


【解决方案1】:

借助 SQL 查询和修改后的 jar 添加一些调试,我终于找到了问题所在:您的 id 为 39554 的项目有 2 个活动快照(1234385 和 1234386)。 此用例不受管理,因为这绝不应该发生。

由于这个项目从 2013-06-11 开始就没有被分析过,所以你有太多的选择:

  • 在迁移到 5.0 之前对其运行新的分析
  • 要么删除 2 个快照之一。

【讨论】:

  • 谢谢!现在升级在稍后阶段失败:2015.02.10 13:48:22 错误 RubyThread-5: /usr/local/sonarqube-5.0/web/WEB-INF/app/models/database_migration_manager.rb:102 web[ossdm . DatabaseMigrator] 无法执行数据库迁移:org.sonar.server.db.migrations.v50.FeedFileSources org.sonar.api.utils.SonarException: Unexpected character 'C' (code 67) except space, or '>' or "/ >" 在 [row,col {unknown-source}]: [1,80] at org.sonar.server.db.migrations.v50.FileSourceDto.parseDuplicationData(FileSourceDto.java:188) ~[sonar-server-5.0.罐子:na]
  • 这是个好消息!!!对于这个新问题,请发送电子邮件到我们的用户邮件列表:user@sonar.codehaus.org。
  • 好的,升级完成后我会接受你的回答