-
Bug
-
Resolution: Unresolved
-
Major
-
None
-
This is running on Mac OS X 10.8.4
Campfire recently changed their SSL configuration to a new set of preferred ciphers and this plugin randomly fails with the following exception:
ERROR: Publisher hudson.plugins.campfire.CampfireNotifier aborted due to exception
java.lang.RuntimeException: javax.net.ssl.SSLProtocolException: Server returned wrong cipher suite for session
at hudson.plugins.campfire.Campfire.post(Campfire.java:77)
at hudson.plugins.campfire.Room.speak(Room.java:29)
at hudson.plugins.campfire.CampfireNotifier.publish(CampfireNotifier.java:121)
at hudson.plugins.campfire.CampfireNotifier.perform(CampfireNotifier.java:184)
at hudson.tasks.BuildStepMonitor$3.perform(BuildStepMonitor.java:45)
at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:782)
at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:754)
at hudson.model.Build$BuildExecution.post2(Build.java:183)
at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:707)
at hudson.model.Run.execute(Run.java:1628)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
at hudson.model.ResourceController.execute(ResourceController.java:88)
at hudson.model.Executor.run(Executor.java:246)
Caused by: javax.net.ssl.SSLProtocolException: Server returned wrong cipher suite for session
at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverHello(ClientHandshaker.java:438)
at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:125)
at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Handshaker.java:593)
at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Handshaker.java:529)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:943)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1188)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:654)
at com.sun.net.ssl.internal.ssl.AppOutputStream.write(AppOutputStream.java:100)
at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)
at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:123)
at org.apache.commons.httpclient.methods.StringRequestEntity.writeRequest(StringRequestEntity.java:146)
at org.apache.commons.httpclient.methods.EntityEnclosingMethod.writeRequestBody(EntityEnclosingMethod.java:499)
at org.apache.commons.httpclient.HttpMethodBase.writeRequest(HttpMethodBase.java:2114)
at org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:1096)
at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:398)
at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323)
at hudson.plugins.campfire.Campfire.post(Campfire.java:75)
... 12 more
I believe this was caused by a recent Java update that Apple pushed down.
The error above happens when Java tries to prompt the user to accept some new security changes or trust the certificate, but since Jenkins has no UI, it just crashes with the above exception.
To fix it, download the SSL certificate and import it into System > Certificates on your machine's keychain.