Upgrading Gerrit 2.8 to 2.9 causes java.lang.SecurityException, signer info does not match..

566 views
Skip to first unread message

Khai Do

unread,
Jan 6, 2015, 6:40:52 PM1/6/15
to repo-d...@googlegroups.com
I attempt an upgrade from Gerrit ver 2.8.4 (our own build of it) to Gerrit ver 2.9.4.  I ran init to upgrade, re-indexed then DB, then started gerrit.  Now Gerrit won't start and says that the bouncycastle signer info does not match other classes in the same package.  I did notice that the init process downloaded a "bcprov-jdk15on-149.jar" file which I assume is required by Gerrit 2.9.  I assume the problem is that this file's signature somehow doesn't match what was in the previous version.  Does anybody know how to fix this problem?  Any help would be appreciated.  

--- Gerrit Log ----
[2015-01-06 23:10:35,273] INFO  com.google.gerrit.server.cache.h2.H2CacheFactory : Enabling disk cache /home/gerrit2/review_site/cache
[2015-01-06 23:10:38,402] WARN  com.google.gerrit.sshd.SshDaemon : Disabling cipher arcfour256: invalid parameter passed to RC4 init - org.bouncycastle.crypto.params.ParametersWithIV
[2015-01-06 23:10:38,403] WARN  com.google.gerrit.sshd.SshDaemon : Disabling cipher arcfour128: invalid parameter passed to RC4 init - org.bouncycastle.crypto.params.ParametersWithIV
[2015-01-06 23:10:39,183] ERROR com.google.gerrit.pgm.Daemon : Unable to start daemon
com.google.inject.CreationException: Guice creation errors:

1) Error in custom provider, java.lang.SecurityException: class "org.bouncycastle.asn1.DEREncodable"'s signer information does not match signer information of other classes in the same package
  while locating com.google.gerrit.server.contact.ContactStoreProvider
  at com.google.gerrit.httpd.WebModule.configure(WebModule.java:123)
  while locating com.google.gerrit.server.contact.ContactStore
    for parameter 2 at com.google.gerrit.httpd.rpc.account.AccountSecurityImpl.<init>(AccountSecurityImpl.java:86)
  while locating com.google.gerrit.httpd.rpc.account.AccountSecurityImpl
  at com.google.gerrit.httpd.rpc.RpcServletModule.rpc(RpcServletModule.java:48)
  at com.google.gerrit.httpd.rpc.RpcServletModule.rpc(RpcServletModule.java:48)
  while locating com.google.gerrit.httpd.rpc.GerritJsonServlet annotated with @com.google.inject.internal.UniqueAnnotations$Internal(value=86)
Caused by: java.lang.SecurityException: class "org.bouncycastle.asn1.DEREncodable"'s signer information does not match signer information of other classes in the same package
	at java.lang.ClassLoader.checkCerts(ClassLoader.java:952)
	at java.lang.ClassLoader.preDefineClass(ClassLoader.java:666)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:794)
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
	at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
	at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
	at org.bouncycastle.openpgp.PGPKeyRing.readSignaturesAndTrust(Unknown Source)
	at org.bouncycastle.openpgp.PGPKeyRing.readUserIDs(Unknown Source)
	at org.bouncycastle.openpgp.PGPPublicKeyRing.<init>(Unknown Source)
	at org.bouncycastle.openpgp.PGPObjectFactory.nextObject(Unknown Source)
	at org.bouncycastle.openpgp.PGPPublicKeyRingCollection.<init>(Unknown Source)
	at com.google.gerrit.server.contact.EncryptedContactStore.readPubRing(EncryptedContactStore.java:114)
	at com.google.gerrit.server.contact.EncryptedContactStore.<init>(EncryptedContactStore.java:80)
	at com.google.gerrit.server.contact.ContactStoreProvider.get(ContactStoreProvider.java:79)
	at com.google.gerrit.server.contact.ContactStoreProvider.get(ContactStoreProvider.java:38)
	at com.google.inject.internal.ProviderInternalFactory.provision(ProviderInternalFactory.java:86)
	at com.google.inject.internal.BoundProviderFactory.provision(BoundProviderFactory.java:73)
	at com.google.inject.internal.ProviderInternalFactory.circularGet(ProviderInternalFactory.java:66)
	at com.google.inject.internal.BoundProviderFactory.get(BoundProviderFactory.java:63)
	at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
	at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1058)
	at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
	at com.google.inject.Scopes$1$1.get(Scopes.java:65)
	at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41)
	at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38)
	at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62)
	at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:107)
	at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:88)
	at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:269)
	at com.google.inject.internal.InjectorImpl$3$1.call(InjectorImpl.java:1005)
	at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1058)
	at com.google.inject.internal.InjectorImpl$3.get(InjectorImpl.java:1001)
	at com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1040)
	at com.google.gerrit.httpd.rpc.GerritJsonServletProvider.get(GerritJsonServletProvider.java:37)
	at com.google.gerrit.httpd.rpc.GerritJsonServletProvider.get(GerritJsonServletProvider.java:24)
	at com.google.inject.internal.ProviderInternalFactory.provision(ProviderInternalFactory.java:86)
	at com.google.inject.internal.InternalFactoryToInitializableAdapter.provision(InternalFactoryToInitializableAdapter.java:55)
	at com.google.inject.internal.ProviderInternalFactory.circularGet(ProviderInternalFactory.java:66)
	at com.google.inject.internal.InternalFactoryToInitializableAdapter.get(InternalFactoryToInitializableAdapter.java:47)
	at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
	at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1058)
	at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
	at com.google.inject.Scopes$1$1.get(Scopes.java:65)
	at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41)
	at com.google.inject.internal.InternalInjectorCreator$1.call(InternalInjectorCreator.java:205)
	at com.google.inject.internal.InternalInjectorCreator$1.call(InternalInjectorCreator.java:199)
	at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1051)
	at com.google.inject.internal.InternalInjectorCreator.loadEagerSingletons(InternalInjectorCreator.java:199)
	at com.google.inject.internal.InternalInjectorCreator.injectDynamically(InternalInjectorCreator.java:180)
	at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:110)
	at com.google.inject.internal.InjectorImpl.createChildInjector(InjectorImpl.java:230)
	at com.google.gerrit.pgm.Daemon.createWebInjector(Daemon.java:432)
	at com.google.gerrit.pgm.Daemon.initHttpd(Daemon.java:394)
	at com.google.gerrit.pgm.Daemon.start(Daemon.java:286)
	at com.google.gerrit.pgm.Daemon.run(Daemon.java:201)
	at com.google.gerrit.pgm.util.AbstractProgram.main(AbstractProgram.java:63)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:606)
	at com.google.gerrit.launcher.GerritLauncher.invokeProgram(GerritLauncher.java:166)
	at com.google.gerrit.launcher.GerritLauncher.mainImpl(GerritLauncher.java:93)
	at com.google.gerrit.launcher.GerritLauncher.main(GerritLauncher.java:50)
	at Main.main(Main.java:25)

2) Error in custom provider, java.lang.SecurityException: class "org.bouncycastle.asn1.DEREncodable"'s signer information does not match signer information of other classes in the same package
  while locating com.google.gerrit.server.contact.ContactStoreProvider
  at com.google.gerrit.httpd.WebModule.configure(WebModule.java:123)
  while locating com.google.gerrit.server.contact.ContactStore
Caused by: java.lang.SecurityException: class "org.bouncycastle.asn1.DEREncodable"'s signer information does not match signer information of other classes in the same package
	at java.lang.ClassLoader.checkCerts(ClassLoader.java:952)
	at java.lang.ClassLoader.preDefineClass(ClassLoader.java:666)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:794)
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
	at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
	at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
	at org.bouncycastle.openpgp.PGPKeyRing.readSignaturesAndTrust(Unknown Source)
	at org.bouncycastle.openpgp.PGPKeyRing.readUserIDs(Unknown Source)
	at org.bouncycastle.openpgp.PGPPublicKeyRing.<init>(Unknown Source)
	at org.bouncycastle.openpgp.PGPObjectFactory.nextObject(Unknown Source)
	at org.bouncycastle.openpgp.PGPPublicKeyRingCollection.<init>(Unknown Source)
	at com.google.gerrit.server.contact.EncryptedContactStore.readPubRing(EncryptedContactStore.java:114)
	at com.google.gerrit.server.contact.EncryptedContactStore.<init>(EncryptedContactStore.java:80)
	at com.google.gerrit.server.contact.ContactStoreProvider.get(ContactStoreProvider.java:79)
	at com.google.gerrit.server.contact.ContactStoreProvider.get(ContactStoreProvider.java:38)
	at com.google.inject.internal.ProviderInternalFactory.provision(ProviderInternalFactory.java:86)
	at com.google.inject.internal.BoundProviderFactory.provision(BoundProviderFactory.java:73)
	at com.google.inject.internal.ProviderInternalFactory.circularGet(ProviderInternalFactory.java:66)
	at com.google.inject.internal.BoundProviderFactory.get(BoundProviderFactory.java:63)
	at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
	at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1058)
	at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
	at com.google.inject.Scopes$1$1.get(Scopes.java:65)
	at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41)
	at com.google.inject.internal.InternalInjectorCreator$1.call(InternalInjectorCreator.java:205)
	at com.google.inject.internal.InternalInjectorCreator$1.call(InternalInjectorCreator.java:199)
	at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1051)
	at com.google.inject.internal.InternalInjectorCreator.loadEagerSingletons(InternalInjectorCreator.java:199)
	at com.google.inject.internal.InternalInjectorCreator.injectDynamically(InternalInjectorCreator.java:180)
	at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:110)
	at com.google.inject.internal.InjectorImpl.createChildInjector(InjectorImpl.java:230)
	at com.google.gerrit.pgm.Daemon.createWebInjector(Daemon.java:432)
	at com.google.gerrit.pgm.Daemon.initHttpd(Daemon.java:394)
	at com.google.gerrit.pgm.Daemon.start(Daemon.java:286)
	at com.google.gerrit.pgm.Daemon.run(Daemon.java:201)
	at com.google.gerrit.pgm.util.AbstractProgram.main(AbstractProgram.java:63)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:606)
	at com.google.gerrit.launcher.GerritLauncher.invokeProgram(GerritLauncher.java:166)
	at com.google.gerrit.launcher.GerritLauncher.mainImpl(GerritLauncher.java:93)
	at com.google.gerrit.launcher.GerritLauncher.main(GerritLauncher.java:50)
	at Main.main(Main.java:25)

2 errors
	at com.google.inject.internal.Errors.throwCreationExceptionIfErrorsExist(Errors.java:448)
	at com.google.inject.internal.InternalInjectorCreator.injectDynamically(InternalInjectorCreator.java:184)
	at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:110)
	at com.google.inject.internal.InjectorImpl.createChildInjector(InjectorImpl.java:230)
	at com.google.gerrit.pgm.Daemon.createWebInjector(Daemon.java:432)
	at com.google.gerrit.pgm.Daemon.initHttpd(Daemon.java:394)
	at com.google.gerrit.pgm.Daemon.start(Daemon.java:286)
	at com.google.gerrit.pgm.Daemon.run(Daemon.java:201)
	at com.google.gerrit.pgm.util.AbstractProgram.main(AbstractProgram.java:63)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:606)
	at com.google.gerrit.launcher.GerritLauncher.invokeProgram(GerritLauncher.java:166)
	at com.google.gerrit.launcher.GerritLauncher.mainImpl(GerritLauncher.java:93)
	at com.google.gerrit.launcher.GerritLauncher.main(GerritLauncher.java:50)
	at Main.main(Main.java:25)

Khai Do

unread,
Jan 7, 2015, 2:07:48 AM1/7/15
to repo-d...@googlegroups.com
Actually I figured it out.  I had an older bouncycastle library in the $SITE/lib folder.  I removed all the old ones leaving the one that gerrit downloaded from the upgrade ("bcprov-jdk15on-149.jar").  I also had to download the "bcpg-jdk15on-1.49.jar" from maven central as well.  Once those two files are in the lib folder gerrit started without problems. 
Reply all
Reply to author
Forward
0 new messages