-
Bug
-
Resolution: Duplicate
-
Major
-
None
-
Hudson 1.388 on Debian Lenny (amd64)
-
Powered by SuggestiMate
Our jabber server takes its list of contacts and the globally shared roster from the LDAP
server, which requires nightly restarts of the jabber server for the lists to synchronise
with the LDAP. However, all Hudson instances we have fail to reconnect to the jabber server
after such a restart, unlike "regular" Jabber chat clients, causing (among other things)
build notifications to usually fail. It throws exceptions then.
Restarting the Hudson instances nightly (via cronjob) is out of question, in case they
were building or something, as a hack.
Please let the Jabber plugin retry connecting to the Jabber server every, say, minute or
so when the connection was closed.
[JENKINS-8309] fails to reconnect to jabber server
Yes, we get some errors (not always though), for example:
02.08.2010 06:45:48 hudson.model.AsyncPeriodicWork$1 run
INFO: Finished Workspace clean-up. 1 ms
java.net.SocketException: Connection closed by remote host
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.checkWrite(SSLSocketImpl.java:1281)
at com.sun.net.ssl.internal.ssl.AppOutputStream.write(AppOutputStream.java:43)
at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:202)
at sun.nio.cs.StreamEncoder.implFlushBuffer(StreamEncoder.java:272)
at sun.nio.cs.StreamEncoder.implFlush(StreamEncoder.java:276)
at sun.nio.cs.StreamEncoder.flush(StreamEncoder.java:122)
at java.io.OutputStreamWriter.flush(OutputStreamWriter.java:212)
at java.io.BufferedWriter.flush(BufferedWriter.java:236)
at org.jivesoftware.smack.PacketWriter.writePackets(PacketWriter.java:259)
at org.jivesoftware.smack.PacketWriter.access$000(PacketWriter.java:40)
at org.jivesoftware.smack.PacketWriter$1.run(PacketWriter.java:87)
java.io.EOFException: no more data available - expected end tag </stream:stream> to close start tag <stream:stream> from line 1, parser stopped on END_TAG seen ...xxx@info.tarent.de/laptop" to="evolvis-hudson@info.tarent.de"/>... @2705:3774
at org.xmlpull.mxp1.MXParser.fillBuf(MXParser.java:3035)
at org.xmlpull.mxp1.MXParser.more(MXParser.java:3046)
at org.xmlpull.mxp1.MXParser.nextImpl(MXParser.java:1144)
at org.xmlpull.mxp1.MXParser.next(MXParser.java:1093)
at org.jivesoftware.smack.PacketReader.parsePackets(PacketReader.java:368)
at org.jivesoftware.smack.PacketReader.access$000(PacketReader.java:44)
at org.jivesoftware.smack.PacketReader$1.run(PacketReader.java:76)
02.08.2010 09:23:54 hudson.plugins.im.IMConnectionProvider$ConnectorRunnable run
INFO: Trying to reconnect
02.08.2010 09:24:01 hudson.plugins.jabber.im.transport.JabberIMConnection createConnection
INFO: Accepting all subscription requests
02.08.2010 09:24:01 hudson.plugins.jabber.im.transport.JabberIMConnection connect
INFO: Connected to XMPP on info.tarent.de:5222/info.tarent.de using TLS
java.net.SocketException: Connection closed by remote host
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.checkWrite(SSLSocketImpl.java:1281)
at com.sun.net.ssl.internal.ssl.AppOutputStream.write(AppOutputStream.java:43)
at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:202)
at sun.nio.cs.StreamEncoder.implFlushBuffer(StreamEncoder.java:272)
at sun.nio.cs.StreamEncoder.implFlush(StreamEncoder.java:276)
at sun.nio.cs.StreamEncoder.flush(StreamEncoder.java:122)
at java.io.OutputStreamWriter.flush(OutputStreamWriter.java:212)
at java.io.BufferedWriter.flush(BufferedWriter.java:236)
at org.jivesoftware.smack.PacketWriter.writePackets(PacketWriter.java:259)
at org.jivesoftware.smack.PacketWriter.access$000(PacketWriter.java:40)
at org.jivesoftware.smack.PacketWriter$1.run(PacketWriter.java:87)
java.io.EOFException: no more data available - expected end tag </stream:stream> to close start tag <stream:stream> from line 1, parser stopped on END_TAG seen ...ck nickn tune tunen avatarmeta avatardata bob avatar"/></presence>... @262:283
at org.xmlpull.mxp1.MXParser.fillBuf(MXParser.java:3035)
at org.xmlpull.mxp1.MXParser.more(MXParser.java:3046)
at org.xmlpull.mxp1.MXParser.nextImpl(MXParser.java:1144)
at org.xmlpull.mxp1.MXParser.next(MXParser.java:1093)
at org.jivesoftware.smack.PacketReader.parsePackets(PacketReader.java:368)
at org.jivesoftware.smack.PacketReader.access$000(PacketReader.java:44)
at org.jivesoftware.smack.PacketReader$1.run(PacketReader.java:76)
02.08.2010 09:55:03 hudson.plugins.im.IMConnectionProvider$ConnectorRunnable run
INFO: Trying to reconnect
02.08.2010 09:55:12 hudson.plugins.jabber.im.transport.JabberIMConnection connect
WARNUNG: XMPPError connecting to info.tarent.de:5222.: remote-server-error(502) XMPPError connecting to info.tarent.de:5222.
– caused by: java.net.ConnectException: Connection refused
at org.jivesoftware.smack.XMPPConnection.connectUsingConfiguration(XMPPConnection.java:900)
at org.jivesoftware.smack.XMPPConnection.connect(XMPPConnection.java:1415)
at hudson.plugins.jabber.im.transport.JabberIMConnection.createConnection(JabberIMConnection.java:233)
at hudson.plugins.jabber.im.transport.JabberIMConnection.connect(JabberIMConnection.java:124)
at hudson.plugins.jabber.im.transport.JabberIMConnectionProvider.createConnection(JabberIMConnectionProvider.java:43)
at hudson.plugins.im.IMConnectionProvider.create(IMConnectionProvider.java:57)
at hudson.plugins.im.IMConnectionProvider.access$400(IMConnectionProvider.java:20)
at hudson.plugins.im.IMConnectionProvider$ConnectorRunnable.run(IMConnectionProvider.java:153)
at java.lang.Thread.run(Thread.java:619)
Nested Exception:
java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.Socket.connect(Socket.java:529)
at java.net.Socket.connect(Socket.java:478)
at org.jivesoftware.smack.proxy.DirectSocketFactory.createSocket(DirectSocketFactory.java:28)
at org.jivesoftware.smack.XMPPConnection.connectUsingConfiguration(XMPPConnection.java:888)
at org.jivesoftware.smack.XMPPConnection.connect(XMPPConnection.java:1415)
at hudson.plugins.jabber.im.transport.JabberIMConnection.createConnection(JabberIMConnection.java:233)
at hudson.plugins.jabber.im.transport.JabberIMConnection.connect(JabberIMConnection.java:124)
at hudson.plugins.jabber.im.transport.JabberIMConnectionProvider.createConnection(JabberIMConnectionProvider.java:43)
at hudson.plugins.im.IMConnectionProvider.create(IMConnectionProvider.java:57)
at hudson.plugins.im.IMConnectionProvider.access$400(IMConnectionProvider.java:20)
at hudson.plugins.im.IMConnectionProvider$ConnectorRunnable.run(IMConnectionProvider.java:153)
at java.lang.Thread.run(Thread.java:619)
02.08.2010 09:55:12 hudson.plugins.im.IMConnectionProvider$ConnectorRunnable run
INFO: Reconnect failed. Next connection attempt in 1 minutes
02.08.2010 09:56:12 hudson.plugins.jabber.im.transport.JabberIMConnection connect
WARNUNG: XMPPError connecting to info.tarent.de:5222.: remote-server-error(502) XMPPError connecting to info.tarent.de:5222.
– caused by: java.net.ConnectException: Connection refused
at org.jivesoftware.smack.XMPPConnection.connectUsingConfiguration(XMPPConnection.java:900)
at org.jivesoftware.smack.XMPPConnection.connect(XMPPConnection.java:1415)
at hudson.plugins.jabber.im.transport.JabberIMConnection.createConnection(JabberIMConnection.java:233)
at hudson.plugins.jabber.im.transport.JabberIMConnection.connect(JabberIMConnection.java:124)
at hudson.plugins.jabber.im.transport.JabberIMConnectionProvider.createConnection(JabberIMConnectionProvider.java:43)
at hudson.plugins.im.IMConnectionProvider.create(IMConnectionProvider.java:57)
at hudson.plugins.im.IMConnectionProvider.access$400(IMConnectionProvider.java:20)
at hudson.plugins.im.IMConnectionProvider$ConnectorRunnable.run(IMConnectionProvider.java:153)
at java.lang.Thread.run(Thread.java:619)
Nested Exception:
java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.Socket.connect(Socket.java:529)
at java.net.Socket.connect(Socket.java:478)
at org.jivesoftware.smack.proxy.DirectSocketFactory.createSocket(DirectSocketFactory.java:28)
at org.jivesoftware.smack.XMPPConnection.connectUsingConfiguration(XMPPConnection.java:888)
at org.jivesoftware.smack.XMPPConnection.connect(XMPPConnection.java:1415)
at hudson.plugins.jabber.im.transport.JabberIMConnection.createConnection(JabberIMConnection.java:233)
at hudson.plugins.jabber.im.transport.JabberIMConnection.connect(JabberIMConnection.java:124)
at hudson.plugins.jabber.im.transport.JabberIMConnectionProvider.createConnection(JabberIMConnectionProvider.java:43)
at hudson.plugins.im.IMConnectionProvider.create(IMConnectionProvider.java:57)
at hudson.plugins.im.IMConnectionProvider.access$400(IMConnectionProvider.java:20)
at hudson.plugins.im.IMConnectionProvider$ConnectorRunnable.run(IMConnectionProvider.java:153)
at java.lang.Thread.run(Thread.java:619)
02.08.2010 09:56:12 hudson.plugins.im.IMConnectionProvider$ConnectorRunnable run
INFO: Reconnect failed. Next connection attempt in 2 minutes
02.08.2010 09:58:12 hudson.plugins.jabber.im.transport.JabberIMConnection connect
WARNUNG: SASL authentication failed using mechanism PLAIN:
at org.jivesoftware.smack.SASLAuthentication.authenticate(SASLAuthentication.java:325)
at org.jivesoftware.smack.XMPPConnection.login(XMPPConnection.java:395)
at hudson.plugins.jabber.im.transport.JabberIMConnection.createConnection(JabberIMConnection.java:236)
at hudson.plugins.jabber.im.transport.JabberIMConnection.connect(JabberIMConnection.java:124)
at hudson.plugins.jabber.im.transport.JabberIMConnectionProvider.createConnection(JabberIMConnectionProvider.java:43)
at hudson.plugins.im.IMConnectionProvider.create(IMConnectionProvider.java:57)
at hudson.plugins.im.IMConnectionProvider.access$400(IMConnectionProvider.java:20)
at hudson.plugins.im.IMConnectionProvider$ConnectorRunnable.run(IMConnectionProvider.java:153)
at java.lang.Thread.run(Thread.java:619)
02.08.2010 09:58:12 hudson.plugins.im.IMConnectionProvider$ConnectorRunnable run
INFO: Reconnect failed. Next connection attempt in 4 minutes
java.net.SocketException: Connection closed by remote host
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.checkWrite(SSLSocketImpl.java:1281)
at com.sun.net.ssl.internal.ssl.AppOutputStream.write(AppOutputStream.java:43)
at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:202)
at sun.nio.cs.StreamEncoder.implFlushBuffer(StreamEncoder.java:272)
at sun.nio.cs.StreamEncoder.implFlush(StreamEncoder.java:276)
at sun.nio.cs.StreamEncoder.flush(StreamEncoder.java:122)
at java.io.OutputStreamWriter.flush(OutputStreamWriter.java:212)
at java.io.BufferedWriter.flush(BufferedWriter.java:236)
at org.jivesoftware.smack.PacketWriter.writePackets(PacketWriter.java:274)
at org.jivesoftware.smack.PacketWriter.access$000(PacketWriter.java:40)
at org.jivesoftware.smack.PacketWriter$1.run(PacketWriter.java:87)
java.io.EOFException: no more data available - expected end tag </stream:stream> to close start tag <stream:stream> from line 1, parser stopped on END_TAG seen ...<not-authorized/></failure>... @1:436
at org.xmlpull.mxp1.MXParser.fillBuf(MXParser.java:3035)
at org.xmlpull.mxp1.MXParser.more(MXParser.java:3046)
at org.xmlpull.mxp1.MXParser.nextImpl(MXParser.java:1144)
at org.xmlpull.mxp1.MXParser.next(MXParser.java:1093)
at org.jivesoftware.smack.PacketReader.parsePackets(PacketReader.java:368)
at org.jivesoftware.smack.PacketReader.access$000(PacketReader.java:44)
at org.jivesoftware.smack.PacketReader$1.run(PacketReader.java:76)
02.08.2010 10:02:13 hudson.plugins.jabber.im.transport.JabberIMConnection connect
WARNUNG: SASL authentication failed using mechanism PLAIN:
at org.jivesoftware.smack.SASLAuthentication.authenticate(SASLAuthentication.java:325)
at org.jivesoftware.smack.XMPPConnection.login(XMPPConnection.java:395)
at hudson.plugins.jabber.im.transport.JabberIMConnection.createConnection(JabberIMConnection.java:236)
at hudson.plugins.jabber.im.transport.JabberIMConnection.connect(JabberIMConnection.java:124)
at hudson.plugins.jabber.im.transport.JabberIMConnectionProvider.createConnection(JabberIMConnectionProvider.java:43)
at hudson.plugins.im.IMConnectionProvider.create(IMConnectionProvider.java:57)
at hudson.plugins.im.IMConnectionProvider.access$400(IMConnectionProvider.java:20)
at hudson.plugins.im.IMConnectionProvider$ConnectorRunnable.run(IMConnectionProvider.java:153)
at java.lang.Thread.run(Thread.java:619)
02.08.2010 10:02:13 hudson.plugins.im.IMConnectionProvider$ConnectorRunnable run
INFO: Reconnect failed. Next connection attempt in 8 minutes
java.net.SocketException: Connection closed by remote host
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.checkWrite(SSLSocketImpl.java:1281)
at com.sun.net.ssl.internal.ssl.AppOutputStream.write(AppOutputStream.java:43)
at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:202)
at sun.nio.cs.StreamEncoder.implFlushBuffer(StreamEncoder.java:272)
at sun.nio.cs.StreamEncoder.implFlush(StreamEncoder.java:276)
at sun.nio.cs.StreamEncoder.flush(StreamEncoder.java:122)
at java.io.OutputStreamWriter.flush(OutputStreamWriter.java:212)
at java.io.BufferedWriter.flush(BufferedWriter.java:236)
at org.jivesoftware.smack.PacketWriter.writePackets(PacketWriter.java:274)
at org.jivesoftware.smack.PacketWriter.access$000(PacketWriter.java:40)
at org.jivesoftware.smack.PacketWriter$1.run(PacketWriter.java:87)
java.io.EOFException: no more data available - expected end tag </stream:stream> to close start tag <stream:stream> from line 1, parser stopped on END_TAG seen ...<not-authorized/></failure>... @1:435
at org.xmlpull.mxp1.MXParser.fillBuf(MXParser.java:3035)
at org.xmlpull.mxp1.MXParser.more(MXParser.java:3046)
at org.xmlpull.mxp1.MXParser.nextImpl(MXParser.java:1144)
at org.xmlpull.mxp1.MXParser.next(MXParser.java:1093)
at org.jivesoftware.smack.PacketReader.parsePackets(PacketReader.java:368)
at org.jivesoftware.smack.PacketReader.access$000(PacketReader.java:44)
at org.jivesoftware.smack.PacketReader$1.run(PacketReader.java:76)
02.08.2010 10:10:13 hudson.plugins.jabber.im.transport.JabberIMConnection connect
WARNUNG: SASL authentication failed using mechanism PLAIN:
at org.jivesoftware.smack.SASLAuthentication.authenticate(SASLAuthentication.java:325)
at org.jivesoftware.smack.XMPPConnection.login(XMPPConnection.java:395)
at hudson.plugins.jabber.im.transport.JabberIMConnection.createConnection(JabberIMConnection.java:236)
at hudson.plugins.jabber.im.transport.JabberIMConnection.connect(JabberIMConnection.java:124)
at hudson.plugins.jabber.im.transport.JabberIMConnectionProvider.createConnection(JabberIMConnectionProvider.java:43)
at hudson.plugins.im.IMConnectionProvider.create(IMConnectionProvider.java:57)
at hudson.plugins.im.IMConnectionProvider.access$400(IMConnectionProvider.java:20)
at hudson.plugins.im.IMConnectionProvider$ConnectorRunnable.run(IMConnectionProvider.java:153)
at java.lang.Thread.run(Thread.java:619)
02.08.2010 10:10:13 hudson.plugins.im.IMConnectionProvider$ConnectorRunnable run
INFO: Reconnect failed. Next connection attempt in 16 minutes
java.net.SocketException: Connection closed by remote host
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.checkWrite(SSLSocketImpl.java:1281)
at com.sun.net.ssl.internal.ssl.AppOutputStream.write(AppOutputStream.java:43)
at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:202)
at sun.nio.cs.StreamEncoder.implFlushBuffer(StreamEncoder.java:272)
at sun.nio.cs.StreamEncoder.implFlush(StreamEncoder.java:276)
at sun.nio.cs.StreamEncoder.flush(StreamEncoder.java:122)
at java.io.OutputStreamWriter.flush(OutputStreamWriter.java:212)
at java.io.BufferedWriter.flush(BufferedWriter.java:236)
at org.jivesoftware.smack.PacketWriter.writePackets(PacketWriter.java:274)
at org.jivesoftware.smack.PacketWriter.access$000(PacketWriter.java:40)
at org.jivesoftware.smack.PacketWriter$1.run(PacketWriter.java:87)
java.io.EOFException: no more data available - expected end tag </stream:stream> to close start tag <stream:stream> from line 1, parser stopped on END_TAG seen ...<not-authorized/></failure>... @1:435
at org.xmlpull.mxp1.MXParser.fillBuf(MXParser.java:3035)
at org.xmlpull.mxp1.MXParser.more(MXParser.java:3046)
at org.xmlpull.mxp1.MXParser.nextImpl(MXParser.java:1144)
at org.xmlpull.mxp1.MXParser.next(MXParser.java:1093)
at org.jivesoftware.smack.PacketReader.parsePackets(PacketReader.java:368)
at org.jivesoftware.smack.PacketReader.access$000(PacketReader.java:44)
at org.jivesoftware.smack.PacketReader$1.run(PacketReader.java:76)
02.08.2010 10:26:14 hudson.plugins.jabber.im.transport.JabberIMConnection connect
WARNUNG: SASL authentication failed using mechanism PLAIN:
at org.jivesoftware.smack.SASLAuthentication.authenticate(SASLAuthentication.java:325)
at org.jivesoftware.smack.XMPPConnection.login(XMPPConnection.java:395)
at hudson.plugins.jabber.im.transport.JabberIMConnection.createConnection(JabberIMConnection.java:236)
at hudson.plugins.jabber.im.transport.JabberIMConnection.connect(JabberIMConnection.java:124)
at hudson.plugins.jabber.im.transport.JabberIMConnectionProvider.createConnection(JabberIMConnectionProvider.java:43)
at hudson.plugins.im.IMConnectionProvider.create(IMConnectionProvider.java:57)
at hudson.plugins.im.IMConnectionProvider.access$400(IMConnectionProvider.java:20)
at hudson.plugins.im.IMConnectionProvider$ConnectorRunnable.run(IMConnectionProvider.java:153)
at java.lang.Thread.run(Thread.java:619)
02.08.2010 10:26:14 hudson.plugins.im.IMConnectionProvider$ConnectorRunnable run
INFO: Reconnect failed. Next connection attempt in 16 minutes
java.net.SocketException: Connection closed by remote host
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.checkWrite(SSLSocketImpl.java:1281)
at com.sun.net.ssl.internal.ssl.AppOutputStream.write(AppOutputStream.java:43)
at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:202)
at sun.nio.cs.StreamEncoder.implFlushBuffer(StreamEncoder.java:272)
at sun.nio.cs.StreamEncoder.implFlush(StreamEncoder.java:276)
at sun.nio.cs.StreamEncoder.flush(StreamEncoder.java:122)
at java.io.OutputStreamWriter.flush(OutputStreamWriter.java:212)
at java.io.BufferedWriter.flush(BufferedWriter.java:236)
at org.jivesoftware.smack.PacketWriter.writePackets(PacketWriter.java:274)
at org.jivesoftware.smack.PacketWriter.access$000(PacketWriter.java:40)
at org.jivesoftware.smack.PacketWriter$1.run(PacketWriter.java:87)
java.io.EOFException: no more data available - expected end tag </stream:stream> to close start tag <stream:stream> from line 1, parser stopped on END_TAG seen ...<not-authorized/></failure>... @1:435
at org.xmlpull.mxp1.MXParser.fillBuf(MXParser.java:3035)
at org.xmlpull.mxp1.MXParser.more(MXParser.java:3046)
at org.xmlpull.mxp1.MXParser.nextImpl(MXParser.java:1144)
at org.xmlpull.mxp1.MXParser.next(MXParser.java:1093)
at org.jivesoftware.smack.PacketReader.parsePackets(PacketReader.java:368)
at org.jivesoftware.smack.PacketReader.access$000(PacketReader.java:44)
at org.jivesoftware.smack.PacketReader$1.run(PacketReader.java:76)
02.08.2010 10:42:15 hudson.plugins.jabber.im.transport.JabberIMConnection connect
WARNUNG: SASL authentication failed using mechanism PLAIN:
at org.jivesoftware.smack.SASLAuthentication.authenticate(SASLAuthentication.java:325)
at org.jivesoftware.smack.XMPPConnection.login(XMPPConnection.java:395)
at hudson.plugins.jabber.im.transport.JabberIMConnection.createConnection(JabberIMConnection.java:236)
at hudson.plugins.jabber.im.transport.JabberIMConnection.connect(JabberIMConnection.java:124)
at hudson.plugins.jabber.im.transport.JabberIMConnectionProvider.createConnection(JabberIMConnectionProvider.java:43)
at hudson.plugins.im.IMConnectionProvider.create(IMConnectionProvider.java:57)
at hudson.plugins.im.IMConnectionProvider.access$400(IMConnectionProvider.java:20)
at hudson.plugins.im.IMConnectionProvider$ConnectorRunnable.run(IMConnectionProvider.java:153)
at java.lang.Thread.run(Thread.java:619)
It then mostly repeats. (Why does it try port 5222 at all, anyway?)
Server is an ejabberd_2.1.5-2~bpo50+1 if that helps.
From the logs you can see that the Jabber plugin indeed tries to reconnect, but fails for some reason.
IMO this is therefore a duplicate of JENKINS-7060
The plugin does reconnect on connection failures already!
Please check the logfiles what went wrong there. You should look out for an "IM-Reconnector-Thread" in it.