timja / jenkins-gh-issues-poc-06-18

0 stars 0 forks source link

[JENKINS-39596] JNLPSlave fails to connect with Java WebStart call #3674

Closed timja closed 7 years ago

timja commented 7 years ago



jnlp windows slave won't start using the gui launch button.


Originally reported by funeeldy, imported from: JNLPSlave fails to connect with Java WebStart call
  • assignee: oleg_nenashev
  • status: Resolved
  • priority: Critical
  • resolution: Fixed
  • resolved: 2016-11-10T21:15:23+00:00
  • imported: 2022/01/10
timja commented 7 years ago

funeeldy:

timja commented 7 years ago

oleg_nenashev:

Please provide....
1) You current Jenkins version
2) List of enabled remoting protocols
3) Agent configuration

timja commented 7 years ago

oleg_nenashev:

I see the failure with the following error in the Jenkins startup log. Not sure if it's the same issue (running on Mac), but the behavior is the same

<===[JENKINS REMOTING CAPACITY]===>Slave.jar version: 3.0
This is a Unix agent
java.net.MalformedURLException: no protocol: jnlpJars/slave.jar
    at java.net.URL.(URL.java:593)
    at java.net.URL.(URL.java:490)
    at org.jenkinsci.modules.slave_installer.impl.InstallerGui.call(InstallerGui.java:65)
    at org.jenkinsci.modules.slave_installer.impl.InstallerGui.call(InstallerGui.java:34)
    at hudson.remoting.UserRequest.perform(UserRequest.java:153)
    at hudson.remoting.UserRequest.perform(UserRequest.java:50)
    at hudson.remoting.Request$2.run(Request.java:332)
    at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:68)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at hudson.remoting.Engine$1$1.run(Engine.java:94)
    at java.lang.Thread.run(Thread.java:745)
    at ......remote call to Channel to /127.0.0.1(Native Method)
    at hudson.remoting.Channel.attachCallSiteStackTrace(Channel.java:1435)
    at hudson.remoting.UserResponse.retrieve(UserRequest.java:253)
    at hudson.remoting.Channel.call(Channel.java:795)
    at org.jenkinsci.modules.slave_installer.impl.ComputerListenerImpl.onOnline(ComputerListenerImpl.java:32)
    at hudson.slaves.SlaveComputer.setChannel(SlaveComputer.java:581)
    at jenkins.slaves.DefaultJnlpSlaveReceiver.afterChannel(DefaultJnlpSlaveReceiver.java:171)
    at org.jenkinsci.remoting.engine.JnlpConnectionState$4.invoke(JnlpConnectionState.java:421)
    at org.jenkinsci.remoting.engine.JnlpConnectionState.fire(JnlpConnectionState.java:312)
    at org.jenkinsci.remoting.engine.JnlpConnectionState.fireAfterChannel(JnlpConnectionState.java:418)
    at org.jenkinsci.remoting.engine.LegacyJnlpProtocolHandler$1.call(LegacyJnlpProtocolHandler.java:113)
    at org.jenkinsci.remoting.engine.LegacyJnlpProtocolHandler$1.call(LegacyJnlpProtocolHandler.java:104)
    at jenkins.util.ContextResettingExecutorService$2.call(ContextResettingExecutorService.java:46)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

System log:

Nov 09, 2016 12:51:57 PM hudson.TcpSlaveAgentListener$ConnectionHandler run
INFO: Accepted connection #28 from /127.0.0.1:61584
Nov 09, 2016 12:52:02 PM hudson.node_monitors.ResponseTimeMonitor$1 monitor
WARNING: Making DumbJNLPAgent offline because it’s not responding
timja commented 7 years ago

oleg_nenashev:

Confirmed the bug. remoting Engine class does not set up hudsonUrl starting from remoting 3.0

timja commented 7 years ago

oleg_nenashev:

Created https://github.com/jenkinsci/remoting/pull/131

timja commented 7 years ago

funeeldy:

sorry I didn't provide those, I figured since they were provided in the other bug I opened, it would be enough. Do you still need the info you requested?

timja commented 7 years ago

danielbeck:

other bug I opened

There is no bug linked from here, and we're not psychic. Please always include all relevant information. Copy & paste should be fine.

timja commented 7 years ago

oleg_nenashev:

I do not need any additional info. I've reproduced the issue, fixed it and confirmed the fix works on my environment. Hopefully we will get the fix in 2.31. Regarding the JNLP signature warning, it should be another story

timja commented 7 years ago

funeeldy:

Daniel, I thought I was communicating with Oleg. He asked me to open this one from another one and to assign this one to him. I didn't consider the possibility that there would be confusion around it.
About Jenkins 2.30
All Agent protocols enabled except 3 and 4.

timja commented 7 years ago

funeeldy:

Oleg, what do you mean by "Regarding the JNLP signature warning, it should be another story"?
I need the slaves to work. These problems are preventing us from moving forward with version 2.x rollout.
thank you.

timja commented 7 years ago

danielbeck:

Oleg, what do you mean by "Regarding the JNLP signature warning, it should be another story"?
I need the slaves to work. These problems are preventing us from moving forward with version 2.x rollout.
thank you.

He's referring to the warning about hudson.showWindowsServiceInstallLink which AFAICT has no negative impact on anything.

timja commented 7 years ago

funeeldy:

Great! thank you.

timja commented 7 years ago

scm_issue_link:

Code changed in jenkins
User: Oleg Nenashev
Path:
src/main/java/hudson/remoting/Engine.java
src/main/java/org/jenkinsci/remoting/engine/JnlpAgentEndpoint.java
src/main/java/org/jenkinsci/remoting/engine/JnlpAgentEndpointResolver.java
http://jenkins-ci.org/commit/remoting/837bfeb81e8ed360e8350711b59fb8d9f3311882
Log:
JENKINS-39596 - Restore assigning of hudsonUrl in hudson.remoting.Engine

It's a regression in remotirn-3.0

timja commented 7 years ago

scm_issue_link:

Code changed in jenkins
User: Oleg Nenashev
Path:
src/main/java/hudson/remoting/Engine.java
src/main/java/org/jenkinsci/remoting/engine/JnlpAgentEndpoint.java
src/main/java/org/jenkinsci/remoting/engine/JnlpAgentEndpointResolver.java
http://jenkins-ci.org/commit/remoting/e0cfb18cc844d6f027df64f76c9b3fc0aa4ec2bb
Log:
Merge pull request #131 from oleg-nenashev/bug/JENKINS-39596

[JENKINS-39596,JENKINS-39617] - hudsonUrl in Remoting Engine was always null since 3.0

Compare: https://github.com/jenkinsci/remoting/compare/fa398e1aa531...e0cfb18cc844

timja commented 7 years ago

funeeldy:

Oleg, not sure if it is possible, but I am happy to test your fix if you would like?

timja commented 7 years ago

oleg_nenashev:

We need to get a signed remoting version in order to allow testing by users. Hopefully we will get it today

timja commented 7 years ago

smada2108:

We are unable to use our Windows slaves as a consequence of this. Is there a workaround or imminent fix please?

timja commented 7 years ago

oleg_nenashev:

Currently I'm waiting for the votes in https://github.com/jenkinsci/jenkins/pull/2628

Workarounds:

timja commented 7 years ago

smada2108:

Hmm, well actually I am launching my slave using the command:

javaws http://<>:8080/computer/SYDWIN01/slave-agent.jnlp

and not the web UI. I get the same issue with either.

What alternative can I use to get it working?

Thanks

timja commented 7 years ago

funeeldy:

Oleg, my master is linux. can I use a yum or rpm command to get that version of the war file?
For Matt Adams, I got around this temporarily by creating a bat file on my windows slave that is kicked off by the task scheduler. the bat file uses the java command line instead of the javaws command line.
java -jar c:\jenkins\slave.jar -jnlpUrl http://XX.XX.XX.XX:8080/computer/SLAVENAME/slave-agent.jnlp

timja commented 7 years ago

oleg_nenashev:

> Oleg, my master is linux. can I use a yum or rpm command to get that version of the war file?

No, we do not publish snapshot builds in Package managers.
But you can just replace jenkins.war and then update package to 2.31 once it gets released

timja commented 7 years ago

funeeldy:

the new jenkins.war fixed the problem with the slave! thank you very much.

timja commented 7 years ago

danielbeck:

oleg_nenashev

I get the same issue with either.

Didn't you tell me the CLI launcher is unaffected by this?

timja commented 7 years ago

oleg_nenashev:

The fix has been intergrated towards 2.31

timja commented 7 years ago

scm_issue_link:

Code changed in jenkins
User: Oleg Nenashev
Path:
pom.xml
http://jenkins-ci.org/commit/jenkins/7a948d399585d201c4132597aed5723a495acf69
Log:
Update remoting to 2.31 in the Jenkins core. (#2628)

The change introduces one serious bugfix (JENKINS-39596) and a bunch of various diagnostics improvements.

Bugfixes:

Improvements: