-
Bug
-
Resolution: Fixed
-
Major
-
None
-
Jenkins 1.450, url-change-trigger 1.2
Polling an HTTPS URL for changes can cause the entire cron thread to get stuck during a connection attempt. Here is a thread dump of a cron thread that was stuck for more than 5 hours (and likely to be stuck indefinitely):
"Jenkins cron thread" Id=22 Group=main RUNNABLE (in native)
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:146)
at sun.security.ssl.InputRecord.readFully(InputRecord.java:312)
at sun.security.ssl.InputRecord.readV3Record(InputRecord.java:424)
at sun.security.ssl.InputRecord.read(InputRecord.java:379)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:850)
- locked java.lang.Object@2213b7b7
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1190) - locked java.lang.Object@3c8260db
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1217)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1201)
at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:440)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1139) - locked sun.net.www.protocol.https.DelegateHttpsURLConnection@2fb65e1d
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254) - locked sun.net.www.protocol.https.HttpsURLConnectionImpl@43998053
at java.net.URL.openStream(URL.java:1029)
at com.redfin.hudson.UrlChangeTrigger.run(UrlChangeTrigger.java:63)
at hudson.triggers.Trigger.checkTriggers(Trigger.java:250)
at hudson.triggers.Trigger$Cron.doRun(Trigger.java:198)
at hudson.triggers.SafeTimerTask.run(SafeTimerTask.java:54)
at java.util.TimerThread.mainLoop(Timer.java:534)
at java.util.TimerThread.run(Timer.java:484)