As Per document pre-requisites:
- Gerrit v2.14.20 or later --> 3.6
- Externally mounted filesystem shared among the cluster --> NFS share of /git
- ReviewDb on an external DataBase Server --> External Postgress Database
- Load-balancer (HAProxy or similar) --> haproxy
Initialized the gerrit with the external DB and required configuration.
gerrit_home/etc/gerrit.config
*********************
[gerrit]
basePath = /fsxtest/shared/git
canonicalWebUrl =
http://awsmblx108as605.ad.com:8080 serverId = 82c23693-4ff8-4232-80ea-c18ac9ad0499
[container]
javaOptions = "-Dflogger.backend_factory=com.google.common.flogger.backend.log4j.Log4jBackendFactory#getInstance"
javaOptions = "-Dflogger.logging_context=com.google.gerrit.server.logging.LoggingContext#getInstance"
user = gerrit
javaHome = /usr/lib/jvm/java-11-openjdk-amd64
[index]
type = lucene
[auth]
type = LDAP
gitBasicAuthPolicy = HTTP
userNameCaseInsensitive = true
[ldap]
server = ldaps://
ldapbd.ad.test.com username = gerrit
accountBase = DC=ad,DC=test,DC=com
groupBase = DC=ad,DC=test,DC=com
[receive]
enableSignedPush = false
[sendemail]
smtpServer =
smtpbd.test.com smtpServerPort = 25
smtpUser = gerrit
[sshd]
listenAddress = *:29418
[httpd]
listenUrl = proxy-https://*:8080/
[cache]
directory = cache
[accountPatchReviewDb]
url = jdbc:postgresql://
hiawsmb-rds.ap-south-1.rds.amazonaws.com:5432/gerritha?user=ger&password=pass********************
Create a high-availability.config with the below contents:
**************
[main]
sharedDirectory = /fsxtest/shared/git
[peerInfo]
strategy = static
[peerInfo "static"]
url =
http://awsmblx108as606.ad.test.com:8080[autoReindex]
enabled = false
[http]
user = gerrit
password = OB6EmDPfqhN3NDdclg
[healthcheck]
enable = true
**************
When we start the Server it fails with the below Error only when the ha plugin is loaded in the plugin directory.
**************************************
[2023-01-02T13:44:00.358Z] [main] INFO com.google.gerrit.server.plugins.PluginLoader : Loaded plugin gitiles, version v3.6.3
[2023-01-02T13:44:00.427Z] [main] ERROR com.google.gerrit.pgm.Daemon : Thread main threw exception
com.google.common.util.concurrent.ExecutionError: java.lang.NoClassDefFoundError: Lcom/gerritforge/gerrit/globalrefdb/validation/SharedRefDbConfiguration;
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2049)
at com.google.common.cache.LocalCache.get(LocalCache.java:3951)
at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3974)
at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4935)
at com.google.common.cache.LocalCache$LocalLoadingCache.getUnchecked(LocalCache.java:4941)
at com.google.inject.internal.FailableCache.get(FailableCache.java:54)
at com.google.inject.internal.ConstructorInjectorStore.get(ConstructorInjectorStore.java:49)
at com.google.inject.internal.ConstructorBindingImpl.initialize(ConstructorBindingImpl.java:148)
at com.google.inject.internal.InjectorImpl.initializeJitBinding(InjectorImpl.java:606)
at com.google.inject.internal.InjectorImpl.createJustInTimeBinding(InjectorImpl.java:943)
at com.google.inject.internal.InjectorImpl.createJustInTimeBindingRecursive(InjectorImpl.java:863)
at com.google.inject.internal.InjectorImpl.getJustInTimeBinding(InjectorImpl.java:301)
at com.google.inject.internal.InjectorImpl.getBindingOrThrow(InjectorImpl.java:224)
at com.google.inject.internal.InjectorImpl.getProviderOrThrow(InjectorImpl.java:1092)
at com.google.inject.internal.InjectorImpl.getProvider(InjectorImpl.java:1121)
at com.google.inject.internal.InjectorImpl.getProvider(InjectorImpl.java:1086)
at com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1138)
at com.google.gerrit.server.plugins.ServerPlugin.startPlugin(ServerPlugin.java:212)
at com.google.gerrit.server.plugins.ServerPlugin.start(ServerPlugin.java:182)
at com.google.gerrit.server.plugins.PluginLoader.runPlugin(PluginLoader.java:512)
at com.google.gerrit.server.plugins.PluginLoader.rescan(PluginLoader.java:426)
at com.google.gerrit.server.plugins.PluginLoader.start(PluginLoader.java:331)
at com.google.gerrit.lifecycle.LifecycleManager.start(LifecycleManager.java:95)
at com.google.gerrit.pgm.Daemon.start(Daemon.java:386)
at com.google.gerrit.pgm.Daemon.run(Daemon.java:285)
at com.google.gerrit.pgm.util.AbstractProgram.main(AbstractProgram.java:61)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at com.google.gerrit.launcher.GerritLauncher.invokeProgram(GerritLauncher.java:224)
at com.google.gerrit.launcher.GerritLauncher.mainImpl(GerritLauncher.java:120)
at com.google.gerrit.launcher.GerritLauncher.main(GerritLauncher.java:65)
at Main.main(Main.java:29)
Caused by: java.lang.NoClassDefFoundError: Lcom/gerritforge/gerrit/globalrefdb/validation/SharedRefDbConfiguration;
at java.base/java.lang.Class.getDeclaredFields0(Native Method)
at java.base/java.lang.Class.privateGetDeclaredFields(Class.java:3061)
at java.base/java.lang.Class.getDeclaredFields(Class.java:2248)
at com.google.inject.internal.DeclaredMembers.getDeclaredFields(DeclaredMembers.java:40)
at com.google.inject.spi.InjectionPoint.getDeclaredFields(InjectionPoint.java:800)
at com.google.inject.spi.InjectionPoint.getInjectionPoints(InjectionPoint.java:710)
at com.google.inject.spi.InjectionPoint.forInstanceMethodsAndFields(InjectionPoint.java:423)
at com.google.inject.internal.ConstructorBindingImpl.getInternalDependencies(ConstructorBindingImpl.java:173)
at com.google.inject.internal.InjectorImpl.getInternalDependencies(InjectorImpl.java:671)
at com.google.inject.internal.InjectorImpl.cleanup(InjectorImpl.java:628)
at com.google.inject.internal.InjectorImpl.initializeJitBinding(InjectorImpl.java:614)
at com.google.inject.internal.InjectorImpl.createJustInTimeBinding(InjectorImpl.java:943)
at com.google.inject.internal.InjectorImpl.createJustInTimeBindingRecursive(InjectorImpl.java:863)
at com.google.inject.internal.InjectorImpl.getJustInTimeBinding(InjectorImpl.java:301)
at com.google.inject.internal.InjectorImpl.getBindingOrThrow(InjectorImpl.java:224)
at com.google.inject.internal.InjectorImpl.createParameterInjector(InjectorImpl.java:1035)
at com.google.inject.internal.InjectorImpl.getParametersInjectors(InjectorImpl.java:1022)
at com.google.inject.internal.ConstructorInjectorStore.createConstructor(ConstructorInjectorStore.java:70)
at com.google.inject.internal.ConstructorInjectorStore.access$000(ConstructorInjectorStore.java:30)
at com.google.inject.internal.ConstructorInjectorStore$1.create(ConstructorInjectorStore.java:38)
at com.google.inject.internal.ConstructorInjectorStore$1.create(ConstructorInjectorStore.java:34)
at com.google.inject.internal.FailableCache$1.load(FailableCache.java:43)
at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3529)
at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2278)
at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2155)
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2045)
... 33 more
Caused by: java.lang.ClassNotFoundException: com.gerritforge.gerrit.globalrefdb.validation.SharedRefDbConfiguration
at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:476)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589)
at java.base/java.net.FactoryURLClassLoader.loadClass(URLClassLoader.java:904)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
**************************************
It looks to be a defect in 3.3.4 version but is it also an issue with the Open JDK or some configuration issue/
Any leads is greatly apreciated.