Opened 9 years ago
Closed 9 years ago
#831 closed defect (fixed)
Losing connection to Open grid cluster
Reported by: | Nicklas Nordborg | Owned by: | Nicklas Nordborg |
---|---|---|---|
Priority: | minor | Milestone: | Reggie v4.0 |
Component: | net.sf.basedb.reggie | Keywords: | |
Cc: |
Description
[-1] net.schmizz.sshj.transport.TransportException: Unable to reach a settlement: [] and [aes128-ctr, aes192-ctr, aes256-ctr, arcfour256, arcfour128, aes128-cbc, 3des-cbc, blowfish-cbc, cast128-cbc, aes192-cbc, aes256-cbc, arcfour, rijndael-cbc@lysator.liu.se]
On my development machine I get the above error message after every re-installation of Reggie when trying to connect to the Open grid cluster. Restarting Tomcat seems to be the only thing that helps.
After searching the Internet for similar it seems like this could be a problem with the Bouncy Castle encryption library which was added as part of #810 [3566]. This library is not only used by iText PDF but is also an optional component to the SSH library. If Bouncy Castle is present it will be registered as a "Security provider" by calling java.security.Security.addProvider()
.
The problem is that when Reggie is re-installed the old class loader is destroyed and the security provider that was added can no longer be used. Re-installation doesn't register a new provider instance. In any case it is a really bad idea to register providers to a system-wide repository like this since it causes leaks between otherwise isolated web applications and plug-ins.
Luckily, the SSH library has an option to not register the Bouncy Castle even if it is present and it seems like this makes the problem go away.
(In [3604]) Fixes #831: Losing connection to Open grid cluster