upgrade gerrit 3.10.1 to 3.12.0,meet some error

115 views
Skip to first unread message

bonnie chen

unread,
Jun 11, 2025, 3:33:40 AM6/11/25
to Repo and Gerrit Discussion
Dear All,
we upgrade our gerrit from 3.10.1 to 3.12.0,
during reindex, it meet a lots the following error:

org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "DATA" already exists; SQL statement:
CREATE CACHED TABLE "PUBLIC"."DATA"(
    "K" JAVA_OBJECT NOT NULL,
    "V" JAVA_OBJECT NOT NULL,
    "CREATED" TIMESTAMP NOT NULL,
    "ACCESSED" TIMESTAMP NOT NULL
) [42101-232]
        at org.h2.message.DbException.getJdbcSQLException(DbException.java:514)
        at org.h2.message.DbException.getJdbcSQLException(DbException.java:489)
        at org.h2.message.DbException.get(DbException.java:223)
        at org.h2.message.DbException.get(DbException.java:199)
        at org.h2.command.ddl.CreateTable.update(CreateTable.java:91)
        at org.h2.engine.MetaRecord.prepareAndExecute(MetaRecord.java:77)
        at org.h2.engine.Database.executeMeta(Database.java:665)
        at org.h2.engine.Database.executeMeta(Database.java:637)
        at org.h2.engine.Database.<init>(Database.java:359)
        at org.h2.engine.Engine.openSession(Engine.java:92)
        at org.h2.engine.Engine.openSession(Engine.java:222)
        at org.h2.engine.Engine.createSession(Engine.java:201)
        at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:344)
        at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:124)
        at org.h2.Driver.connect(Driver.java:59)
        at com.google.gerrit.server.cache.h2.H2CacheImpl$SqlHandle.<init>(H2CacheImpl.java:732)
        at com.google.gerrit.server.cache.h2.H2CacheImpl$SqlStore.acquire(H2CacheImpl.java:704)
        at com.google.gerrit.server.cache.h2.H2CacheImpl$SqlStore.getIfPresent(H2CacheImpl.java:456)
        at com.google.gerrit.server.cache.h2.H2CacheImpl$Loader.load(H2CacheImpl.java:260)
        at com.google.gerrit.server.cache.h2.H2CacheImpl$Loader.load(H2CacheImpl.java:244)
        at com.google.gerrit.server.cache.mem.PassthroughLoadingCache.get(PassthroughLoadingCache.java:88)
        at com.google.gerrit.server.cache.h2.H2CacheImpl.get(H2CacheImpl.java:130)
        at com.google.gerrit.server.project.ProjectCacheImpl$InMemoryLoader.load(ProjectCacheImpl.java:420)
        at com.google.gerrit.server.project.ProjectCacheImpl$InMemoryLoader.load(ProjectCacheImpl.java:361)
        at com.github.benmanes.caffeine.guava.CaffeinatedGuavaLoadingCache$SingleLoader.load(CaffeinatedGuavaLoadingCache.java:136)
        at com.github.benmanes.caffeine.cache.LocalLoadingCache.lambda$newMappingFunction$2(LocalLoadingCache.java:141)
        at com.github.benmanes.caffeine.cache.LocalCache.lambda$statsAware$0(LocalCache.java:139)
        at com.github.benmanes.caffeine.cache.BoundedLocalCache.lambda$doComputeIfAbsent$14(BoundedLocalCache.java:2413)
        at java.base/java.util.concurrent.ConcurrentHashMap.compute(ConcurrentHashMap.java:1955)
        at com.github.benmanes.caffeine.cache.BoundedLocalCache.doComputeIfAbsent(BoundedLocalCache.java:2411)
        at com.github.benmanes.caffeine.cache.BoundedLocalCache.computeIfAbsent(BoundedLocalCache.java:2394)
        at com.github.benmanes.caffeine.cache.LocalCache.computeIfAbsent(LocalCache.java:108)
        at com.github.benmanes.caffeine.cache.LocalLoadingCache.get(LocalLoadingCache.java:54)
        at com.github.benmanes.caffeine.guava.CaffeinatedGuavaLoadingCache.get(CaffeinatedGuavaLoadingCache.java:59)
        at com.google.gerrit.server.project.ProjectCacheImpl.get(ProjectCacheImpl.java:227)
        at com.google.gerrit.server.change.LabelNormalizer.normalize(LabelNormalizer.java:106)
        at com.google.gerrit.server.approval.ApprovalsUtil.byPatchSet(ApprovalsUtil.java:901)
        at com.google.gerrit.server.query.change.ChangeData.currentApprovals(ChangeData.java:849)
        at com.google.gerrit.server.index.change.ChangeField.lambda$static$45(ChangeField.java:1035)
        at com.google.gerrit.index.IndexedField.get(IndexedField.java:437)
        at com.google.gerrit.index.IndexedField$SearchSpec.get(IndexedField.java:151)
        at com.google.gerrit.index.Schema.fieldValues(Schema.java:273)
        at com.google.gerrit.index.Schema.lambda$buildFields$0(Schema.java:306)
        at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
        at com.google.common.collect.CollectSpliterators$1WithCharacteristics.lambda$forEachRemaining$1(CollectSpliterators.java:72)
        at java.base/java.util.stream.Streams$RangeIntSpliterator.forEachRemaining(Streams.java:104)
        at com.google.common.collect.CollectSpliterators$1WithCharacteristics.forEachRemaining(CollectSpliterators.java:72)
        at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
        at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
        at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
        at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
        at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
        at com.google.gerrit.index.Schema.buildFields(Schema.java:308)
        at com.google.gerrit.lucene.AbstractLuceneIndex.toDocument(AbstractLuceneIndex.java:359)
        at com.google.gerrit.lucene.LuceneChangeIndex.insert(LuceneChangeIndex.java:235)
        at com.google.gerrit.lucene.LuceneChangeIndex.insert(LuceneChangeIndex.java:105)
        at com.google.gerrit.server.index.change.ChangeIndexer.indexImpl(ChangeIndexer.java:337)
        at com.google.gerrit.server.index.change.ChangeIndexer.doIndex(ChangeIndexer.java:297)
        at com.google.gerrit.server.index.change.ChangeIndexer.index(ChangeIndexer.java:293)
        at com.google.gerrit.server.index.change.AllChangesIndexer$ProjectSliceIndexer.lambda$new$1(AllChangesIndexer.java:286)
        at com.google.gerrit.server.index.change.AllChangesIndexer$ProjectSliceIndexer.index(AllChangesIndexer.java:327)
        at com.google.gerrit.server.index.change.AllChangesIndexer$ProjectSliceIndexer.lambda$call$3(AllChangesIndexer.java:313)
        at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
        at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179)
        at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
        at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179)
        at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:1024)
        at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
        at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
        at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
        at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
        at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
        at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
        at com.google.gerrit.server.index.change.AllChangesIndexer$ProjectSliceIndexer.call(AllChangesIndexer.java:313)
        at com.google.gerrit.server.index.change.AllChangesIndexer$ProjectSliceIndexer.call(AllChangesIndexer.java:266)
        at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:131)
        at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:75)
        at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:82)
        at com.google.gerrit.server.logging.LoggingContextAwareRunnable.run(LoggingContextAwareRunnable.java:113)
        at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
        at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
        at com.google.gerrit.server.git.WorkQueue$Task.run(WorkQueue.java:912)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
        at java.base/java.lang.Thread.run(Thread.java:1583)

bonnie chen

unread,
Jun 11, 2025, 5:45:59 AM6/11/25
to Repo and Gerrit Discussion

And also meet this error
[main] ERROR com.google.gerrit.pgm.Daemon : Thread main threw exception
java.lang.NoClassDefFoundError: com/google/gerrit/server/git/receive/PluginPushOption
        at com.google.gerrit.plugins.codeowners.validation.ValidationModule.configure(ValidationModule.java:38)
        at com.google.inject.AbstractModule.configure(AbstractModule.java:64)
        at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:426)
        at com.google.inject.AbstractModule.install(AbstractModule.java:106)
        at com.google.gerrit.plugins.codeowners.module.PluginModule.configure(PluginModule.java:32)
        at com.google.inject.AbstractModule.configure(AbstractModule.java:64)
        at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:426)
        at com.google.inject.spi.Elements.getElements(Elements.java:113)
        at com.google.inject.internal.InjectorShell$Builder.build(InjectorShell.java:160)
        at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:107)
        at com.google.inject.internal.InjectorImpl.createChildInjector(InjectorImpl.java:240)
        at com.google.inject.internal.InjectorImpl.createChildInjector(InjectorImpl.java:245)
        at com.google.gerrit.server.plugins.ServerPlugin.startPlugin(ServerPlugin.java:232)
        at com.google.gerrit.server.plugins.ServerPlugin.start(ServerPlugin.java:195)
        at com.google.gerrit.server.plugins.PluginLoader.runPlugin(PluginLoader.java:523)
        at com.google.gerrit.server.plugins.PluginLoader.rescan(PluginLoader.java:444)
        at com.google.gerrit.server.plugins.PluginLoader.start(PluginLoader.java:344)
        at com.google.gerrit.lifecycle.LifecycleManager.start(LifecycleManager.java:95)
        at com.google.gerrit.pgm.Daemon.start(Daemon.java:415)
        at com.google.gerrit.pgm.Daemon.run(Daemon.java:303)
        at com.google.gerrit.pgm.util.AbstractProgram.main(AbstractProgram.java:62)
        at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
        at java.base/java.lang.reflect.Method.invoke(Method.java:580)
        at com.google.gerrit.launcher.GerritLauncher.invokeProgram(GerritLauncher.java:251)
        at com.google.gerrit.launcher.GerritLauncher.mainImpl(GerritLauncher.java:147)
        at com.google.gerrit.launcher.GerritLauncher.main(GerritLauncher.java:92)
        at Main.main(Main.java:30)
Caused by: java.lang.ClassNotFoundException: com.google.gerrit.server.git.receive.PluginPushOption
        at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:445)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:593)
        at java.base/java.net.FactoryURLClassLoader.loadClass(URLClassLoader.java:872)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526)
        ... 27 more

Sven Selberg

unread,
Jun 11, 2025, 7:41:03 AM6/11/25
to Repo and Gerrit Discussion
On Wednesday, June 11, 2025 at 11:45:59 AM UTC+2 bonnie chen wrote:

And also meet this error
[main] ERROR com.google.gerrit.pgm.Daemon : Thread main threw exception
java.lang.NoClassDefFoundError: com/google/gerrit/server/git/receive/PluginPushOption

This smells like you have a plugin (code-owners) incompatible with 3.12  installed.
If so, replace it with a code-owners built for 3.12 API.

Code-Owners seems to not have a stable-3.12 branch or a stable-3.12 build, my  guess is that you need the [master build](https://gerrit-ci.gerritforge.com/job/plugin-code-owners-bazel-master/).
My guess is 3.10 is missing this: [https://gerrit-review.googlesource.com/c/plugins/code-owners/+/452782] that is adopting code-owners to this core patch [https://gerrit-review.googlesource.com/c/gerrit/+/452563].

/Sven

bonnie chen

unread,
Jun 11, 2025, 11:08:39 PM6/11/25
to Repo and Gerrit Discussion
Got it, Thanks
After remove Code-Owners plugins, gerrit startup.
However meet some warning
[2025-06-12T01:00:02.587+08:00] [DiskCache-Prune-1[Disk Cache Pruner (modified_files-v2)]] WARN  com.google.gerrit.server.cache.h2.H2CacheImpl : Cannot prune cache jdbc:h2:file:///var/gerrit/cache/modified_files-v2

org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "DATA" already exists; SQL statement:
CREATE CACHED TABLE "PUBLIC"."DATA"(
    "K" JAVA_OBJECT SELECTIVITY 100 NOT NULL,
    "V" JAVA_OBJECT SELECTIVITY 67 NOT NULL,
    "CREATED" TIMESTAMP SELECTIVITY 78 NOT NULL,
    "ACCESSED" TIMESTAMP SELECTIVITY 63 NOT NULL,
    "SPACE" BIGINT GENERATED ALWAYS AS (OCTET_LENGTH("K") + OCTET_LENGTH("V")) SELECTIVITY 46,
    "VERSION" INTEGER DEFAULT 0 SELECTIVITY 1 NOT NULL

) [42101-232]
        at org.h2.message.DbException.getJdbcSQLException(DbException.java:514)
        at org.h2.message.DbException.getJdbcSQLException(DbException.java:489)
        at org.h2.message.DbException.get(DbException.java:223)
        at org.h2.message.DbException.get(DbException.java:199)
        at org.h2.command.ddl.CreateTable.update(CreateTable.java:91)
        at org.h2.engine.MetaRecord.prepareAndExecute(MetaRecord.java:77)
        at org.h2.engine.Database.executeMeta(Database.java:665)
        at org.h2.engine.Database.executeMeta(Database.java:637)
        at org.h2.engine.Database.<init>(Database.java:359)
        at org.h2.engine.Engine.openSession(Engine.java:92)
        at org.h2.engine.Engine.openSession(Engine.java:222)
        at org.h2.engine.Engine.createSession(Engine.java:201)
        at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:344)
        at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:124)
        at org.h2.Driver.connect(Driver.java:59)
        at com.google.gerrit.server.cache.h2.H2CacheImpl$SqlHandle.<init>(H2CacheImpl.java:732)
        at com.google.gerrit.server.cache.h2.H2CacheImpl$SqlStore.acquire(H2CacheImpl.java:704)
        at com.google.gerrit.server.cache.h2.H2CacheImpl$SqlStore.prune(H2CacheImpl.java:620)
        at com.google.gerrit.server.cache.h2.H2CacheImpl.prune(H2CacheImpl.java:225)
        at com.google.gerrit.server.cache.h2.H2CacheFactory$PeriodicCachePruner.run(H2CacheFactory.java:74)

        at com.google.gerrit.server.logging.LoggingContextAwareRunnable.run(LoggingContextAwareRunnable.java:113)
        at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
        at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:358)
        at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305)

        at com.google.gerrit.server.git.WorkQueue$Task.run(WorkQueue.java:912)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
        at java.base/java.lang.Thread.run(Thread.java:1583)
[2025-06-12T01:00:02.593+08:00] [DiskCache-Prune-1[Disk Cache Pruner (modified_files-v2)]] WARN  com.google.gerrit.server.cache.h2.H2CacheImpl : Cannot build BloomFilter for jdbc:h2:file:///var/gerrit/cache/modified_files-v2: Table "DATA" already exists; SQL statement:

CREATE CACHED TABLE "PUBLIC"."DATA"(
    "K" JAVA_OBJECT SELECTIVITY 100 NOT NULL,
    "V" JAVA_OBJECT SELECTIVITY 67 NOT NULL,
    "CREATED" TIMESTAMP SELECTIVITY 78 NOT NULL,
    "ACCESSED" TIMESTAMP SELECTIVITY 63 NOT NULL,
    "SPACE" BIGINT GENERATED ALWAYS AS (OCTET_LENGTH("K") + OCTET_LENGTH("V")) SELECTIVITY 46,
    "VERSION" INTEGER DEFAULT 0 SELECTIVITY 1 NOT NULL
) [42101-232]

Did these have any impact?

Reply all
Reply to author
Forward
0 new messages