Issue
-
controller is not able to connect to the CloudBees Jenkins Operation Center
-
Logs show the following exception
2018-06-08 18:46:58.001+0000 [id=58] SEVERE c.c.o.c.p.OperationsCenterRootAction$DescriptorImpl#setAgentErrorStateCallback: Agent Connection Error: DescriptorImpl{state=CONNECTABLE, error=java.lang.SecurityException: Rejected: java.security.cert.Certificate$CertificateRep; see https://www.jenkins.io/redirect/class-filter/, transportEndpoint=cjp.test.example.com/XX.XXX.X.X:10000, operationsCenterUrl=https://cjp.test.example.com/, name='0-Test_controller', grantId='aa03db4b-4d66-410f-a95d-8de6f71e4be1', agentThread=Thread[Operations Center Connector #1,5,main], channel=null, slaveManager=null}
java.lang.SecurityException: Rejected: java.security.cert.Certificate$CertificateRep; see https://www.jenkins.io/redirect/class-filter/
at hudson.remoting.ClassFilter.check(ClassFilter.java:76)
at hudson.remoting.ObjectInputStreamEx.resolveClass(ObjectInputStreamEx.java:57)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1866)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1749)
Resolution
The probable root cause is that the controller is trying to use Multicontroller protocol to connect Operations Center. That protocol is not recommended anymore, so switching to OperationsCenter2 protocol is the solution.
Go to Manage Jenkins > Configure Global Security, and under Agents, click on the Agent Protocols... button and ensure that OperationsCenter2 is checked and Multicontroller not.
You need to apply this configuration change in Operations Centers and controller side and try to reconnect again the controller to the Operations Centers.
If you are not still able to connect the controller after that, ensure that the connectivity is done from scratch by following below steps
-
In controller, go to
Manage Jenkins > Configure Systemand verify ifOperations Center Connectorsection exists. If exists, then uncheck theEnableoption and save the changes. -
In OC, delete the controller item, create a new one and push the new connection details.