Search code examples
jenkinsjnlpslave

connect node to jenkins master = KO => INFO: Protocol JNLP4-connect encountered an unexpected exception + Connection #15 failed: java.io.EOFException


I have a problem to connect my node to my jenkins server. It worked since years for this client and it is still working for other client on the same machine.

here is my command :

java -jar agent.jar -noCertificateCheck -jnlpUrl https://XXXXXXX:8446/computer/srv_linux_87_fpga_xxxx_t1a/slave-agent.jnlp -secret yyyyyyyyyyyy
 -workDir "/home/XXXXXXX/slave_jenkins_srv87"

I have then the error :

Skipping HTTPS certificate checks altogether. Note that this is not secure at all.
Jun 27, 2024 10:49:56 AM org.jenkinsci.remoting.engine.WorkDirManager initializeWorkDir
INFO: Using /home/xxxxx/slave_jenkins_srv87/remoting as a remoting work directory
Jun 27, 2024 10:49:57 AM org.jenkinsci.remoting.engine.WorkDirManager setupLogging
INFO: Both error and output logs will be printed to /home/xxxxx/slave_jenkins_srv87/remoting
Jun 27, 2024 10:49:57 AM hudson.remoting.jnlp.Main createEngine
INFO: Setting up agent: srv_linux_87_fpga_xxxx_t1a
Jun 27, 2024 10:49:57 AM hudson.remoting.jnlp.Main$CuiListener <init>
INFO: Jenkins agent is running in headless mode.
Jun 27, 2024 10:49:57 AM hudson.remoting.jnlp.Main createEngine
WARNING: Certificate validation for HTTPs endpoints is disabled
Jun 27, 2024 10:49:57 AM hudson.remoting.Engine startEngine
INFO: Using Remoting version: 4.3
Jun 27, 2024 10:49:57 AM org.jenkinsci.remoting.engine.WorkDirManager initializeWorkDir
INFO: Using /home/xxxxx/slave_jenkins_srv87/remoting as a remoting work directory
Jun 27, 2024 10:49:57 AM hudson.remoting.jnlp.Main$CuiListener status
INFO: Locating server among [https://xxxxxx:8446/]
Jun 27, 2024 10:49:57 AM org.jenkinsci.remoting.engine.JnlpAgentEndpointResolver openURLConnection
WARNING: HTTPs certificate check is disabled for the endpoint.
Jun 27, 2024 10:49:57 AM org.jenkinsci.remoting.engine.JnlpAgentEndpointResolver resolve
INFO: Remoting server accepts the following protocols: [JNLP4-connect, Ping]
Jun 27, 2024 10:49:57 AM hudson.remoting.jnlp.Main$CuiListener status
INFO: Agent discovery successful
  Agent address: xxxxx
  Agent port:    42780
  Identity:      xxxxxxx
Jun 27, 2024 10:49:57 AM hudson.remoting.jnlp.Main$CuiListener status
INFO: Handshaking
Jun 27, 2024 10:49:57 AM hudson.remoting.jnlp.Main$CuiListener status
INFO: Connecting to srv1990.ad.sds.safran:42780
Jun 27, 2024 10:49:57 AM hudson.remoting.jnlp.Main$CuiListener status
INFO: Trying protocol: JNLP4-connect
Jun 27, 2024 10:49:57 AM hudson.remoting.jnlp.Main$CuiListener status
INFO: Protocol JNLP4-connect encountered an unexpected exception
java.util.concurrent.ExecutionException: org.jenkinsci.remoting.protocol.impl.ConnectionRefusalException: Connection closed before acknowledgement sent
    at org.jenkinsci.remoting.util.SettableFuture.get(SettableFuture.java:223)
    at hudson.remoting.Engine.innerRun(Engine.java:743)
    at hudson.remoting.Engine.run(Engine.java:518)
Caused by: org.jenkinsci.remoting.protocol.impl.ConnectionRefusalException: Connection closed before acknowledgement sent
    at org.jenkinsci.remoting.protocol.impl.AckFilterLayer.onRecvClosed(AckFilterLayer.java:283)
    at org.jenkinsci.remoting.protocol.ProtocolStack$Ptr.onRecvClosed(ProtocolStack.java:816)
    at org.jenkinsci.remoting.protocol.NetworkLayer.onRecvClosed(NetworkLayer.java:154)
    at org.jenkinsci.remoting.protocol.impl.BIONetworkLayer.access$1800(BIONetworkLayer.java:48)
    at org.jenkinsci.remoting.protocol.impl.BIONetworkLayer$Reader.run(BIONetworkLayer.java:264)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at hudson.remoting.Engine$1.lambda$newThread$0(Engine.java:117)
    at java.lang.Thread.run(Thread.java:748)

Jun 27, 2024 10:49:57 AM hudson.remoting.jnlp.Main$CuiListener error
SEVERE: The server rejected the connection: None of the protocols were accepted
java.lang.Exception: The server rejected the connection: None of the protocols were accepted
    at hudson.remoting.Engine.onConnectionRejected(Engine.java:828)
    at hudson.remoting.Engine.innerRun(Engine.java:768)
at hudson.remoting.Engine.run(Engine.java:518)

and inside jenkins log I have :

Connection #15 failed: java.io.EOFException

as a compare here is a correct jenkins slave connection with another slave (but on the same machine) :

Skipping HTTPS certificate checks altogether. Note that this is not secure at all.
Jun 13, 2024 9:25:25 AM org.jenkinsci.remoting.engine.WorkDirManager initializeWorkDir
INFO: Using /home/xxxxxx/slave_jenkins_srv89/remoting as a remoting work directory
Jun 13, 2024 9:25:25 AM org.jenkinsci.remoting.engine.WorkDirManager setupLogging
INFO: Both error and output logs will be printed to /home/xxxxxx/slave_jenkins_srv89/remoting
Jun 13, 2024 9:25:25 AM hudson.remoting.jnlp.Main createEngine
INFO: Setting up agent: srv_linux_89_fpga_xxxxx_t1a
Jun 13, 2024 9:25:25 AM hudson.remoting.jnlp.Main$CuiListener <init>
INFO: Jenkins agent is running in headless mode.
Jun 13, 2024 9:25:25 AM hudson.remoting.jnlp.Main createEngine
WARNING: Certificate validation for HTTPs endpoints is disabled
Jun 13, 2024 9:25:25 AM hudson.remoting.Engine startEngine
INFO: Using Remoting version: 4.3
Jun 13, 2024 9:25:25 AM org.jenkinsci.remoting.engine.WorkDirManager initializeWorkDir
INFO: Using /home/sds.safran/F559710T1A/slave_jenkins_srv89/remoting as a remoting work directory
Jun 13, 2024 9:25:25 AM hudson.remoting.jnlp.Main$CuiListener status
INFO: Locating server among [https://xxxxxxxxxx]
Jun 13, 2024 9:25:25 AM org.jenkinsci.remoting.engine.JnlpAgentEndpointResolver openURLConnection
WARNING: HTTPs certificate check is disabled for the endpoint.
Jun 13, 2024 9:25:26 AM org.jenkinsci.remoting.engine.JnlpAgentEndpointResolver resolve
INFO: Remoting server accepts the following protocols: [JNLP4-connect, Ping]
Jun 13, 2024 9:25:26 AM hudson.remoting.jnlp.Main$CuiListener status
INFO: Agent discovery successful
  Agent address: xxxxxx
  Agent port:    43632
  Identity:      xxxxxx
Jun 13, 2024 9:25:26 AM hudson.remoting.jnlp.Main$CuiListener status
INFO: Handshaking
Jun 13, 2024 9:25:26 AM hudson.remoting.jnlp.Main$CuiListener status
INFO: Connecting to srv1990.ad.sds.safran:43632
Jun 13, 2024 9:25:26 AM hudson.remoting.jnlp.Main$CuiListener status
INFO: Trying protocol: JNLP4-connect
Jun 13, 2024 9:25:26 AM hudson.remoting.jnlp.Main$CuiListener status
INFO: Remote identity confirmed: xxxxxxx
Jun 13, 2024 9:25:26 AM hudson.remoting.jnlp.Main$CuiListener status
INFO: Connected

And inside the jenkins server log when connection is ok :

Accepted JNLP4-connect connection #18 from XXXX/xxxx:yyyyy

it is very strange. as I said I have another client on the same physical machine than me (multi user server) that can be connected to the jenkins server.

jenkins server has been rebooted. linus session for the client has been rebooted also. nothing change.

the error

Connection #15 failed: java.io.EOFException

make me think that maybe there is an error when accessing a file ? file too huge ? no more disk space or something like this ?

the jenkins master is on a server that is no restarted very often and maybe some files to store log are too big ?

also I tried to create another node and I have the same problem.


Solution

  • Problem resolved it was a network issue. the switch between the controller and the node had a firewall that was incorrectly configured