Intermittent: Server closes connection when posting to conference rooms

Ever since I upgraded to Wildfire 2.6.0, my users have been getting kicked intermittently when posting to conference rooms. I’‘m now at 2.6.1 and the problem persists. I’'ve deleted and recreated all conference rooms to no avail. My users are all using Spark 1.1.3. This was working fine under Spark 1.1.3/Wildfire 2.5.0.

When this happens, Spark gives the error “Your connection was closed due to an error. Would you like to Log back in? [No]”

The following is what appears in the Wildfire debug log:

2006.04.17 13:55:53 Closing connection: org.jivesoftware.wildfire.net.SocketConnection@3b96bb socket: Socket[addr=/138.35.105.1,port=1160,localport=5222] session: org.jivesoftware.wildfire.ClientSession@135b92e status: 3 address: username@jci-jabber/spark id: 6ede9371 presence:

java.net.SocketException: Socket closed

at java.net.SocketOutputStream.socketWrite(Unknown Source)

at java.net.SocketOutputStream.write(Unknown Source)

at java.nio.channels.Channels$WritableByteChannelImpl.write(Unknown Source)

at org.jivesoftware.wildfire.net.TLSStreamWriter.writeToSocket(TLSStreamWriter.jav a:86)

at org.jivesoftware.wildfire.net.TLSStreamWriter.tlsWrite(TLSStreamWriter.java:75)

at org.jivesoftware.wildfire.net.TLSStreamWriter.doWrite(TLSStreamWriter.java:55)

at org.jivesoftware.wildfire.net.TLSStreamWriter.access$100(TLSStreamWriter.java:2 8)

at org.jivesoftware.wildfire.net.TLSStreamWriter$1.write(TLSStreamWriter.java:111)

at sun.nio.cs.StreamEncoder$CharsetSE.writeBytes(Unknown Source)

at sun.nio.cs.StreamEncoder$CharsetSE.implFlushBuffer(Unknown Source)

at sun.nio.cs.StreamEncoder$CharsetSE.implFlush(Unknown Source)

at sun.nio.cs.StreamEncoder.flush(Unknown Source)

at java.io.OutputStreamWriter.flush(Unknown Source)

at java.io.BufferedWriter.flush(Unknown Source)

at org.jivesoftware.util.XMLWriter.flush(XMLWriter.java:190)

at org.jivesoftware.wildfire.net.XMLSocketWriter.flush(XMLSocketWriter.java:31)

at org.jivesoftware.wildfire.net.SocketConnection.deliver(SocketConnection.java:48 2)

at org.jivesoftware.wildfire.ClientSession.deliver(ClientSession.java:756)

at org.jivesoftware.wildfire.ClientSession.process(ClientSession.java:750)

at org.jivesoftware.wildfire.muc.spi.MUCRoleImpl.send(MUCRoleImpl.java:241)

at org.jivesoftware.wildfire.muc.spi.MUCRoomImpl.sendPrivatePacket(MUCRoomImpl.jav a:762)

at org.jivesoftware.wildfire.muc.spi.MUCUserImpl.process(MUCUserImpl.java:223)

at org.jivesoftware.wildfire.muc.spi.MUCUserImpl.process(MUCUserImpl.java:124)

at org.jivesoftware.wildfire.muc.spi.MultiUserChatServerImpl.processPacket(MultiUs erChatServerImpl.java:200)

at org.jivesoftware.wildfire.muc.spi.MultiUserChatServerImpl.process(MultiUserChat ServerImpl.java:184)

at org.jivesoftware.wildfire.MessageRouter.route(MessageRouter.java:90)

at org.jivesoftware.wildfire.PacketRouter.route(PacketRouter.java:69)

at org.jivesoftware.wildfire.net.SocketReader.processMessage(SocketReader.java:493 )

at org.jivesoftware.wildfire.net.ClientSocketReader.processMessage(ClientSocketRea der.java:62)

at org.jivesoftware.wildfire.net.SocketReader.readStream(SocketReader.java:198)

at org.jivesoftware.wildfire.net.SocketReader.run(SocketReader.java:119)

at java.lang.Thread.run(Unknown Source)

Hey roberts,

Thanks for the bug report. This is a concurrency problem that is confusing the server and making it assume that a connection is dead when in fact it is still active. I created this issue for this problem JM-650 and will check in a fix in a moment.

Thanks,

– Gato

Done. You can use the next nightly build and give it a shot. Let me know how it goes.

Thanks,

– Gato

Thanks Gato. Even though it’‘s intermittent, this is causing too much disruption so I’‘m taking my server back to 2.5, but I’'m looking forward to 2.6.2

Sorry, I posted my previous message before seeing your last message. Yes, I’'ll apply the next nightly build and let you know the results.

Hey Roberts,

This problem should be happening with any version later than Wildfire 2.1.4. The code has not been modified. Though it could be that other circumstances are making it less frequent.

Regards,

– Gato

Hey Gato,

The most recent nightly build is applied (hopefully I did it right). I’'ll let you know the results.

Thanks,

Roberts

Hey Roberts,

You can keep using the nightly build version but the bug fix is included in the next nightly build. Anyway, to update your 2.6.1 installation to the nightly build version you will have to:

  1. Make a backup of lib/wildfire.jar, resources/database and plugins/admin

  2. Download nightly build and decompress it in a temp folder

  3. Copy lib/wildfire.jar, resources/database and plugins/admin from the temp folder over the existing Wildfire install.

  4. Restart the server

Enjoy,

– Gato

OK. The date on the current nightly build threw me. I’‘ll apply tonight’'s nightly build tomorrow and let you know.

Thanks

Just to be clear. The nightly build that you need to install is http://www.jivesoftware.org/builds/wildfire/dailybuilds/wildfire_2006-04-19.zip (which still does not exist).

Regards,

– Gato

The fix Gato implemented is working like a champ. Thanks a ton.

Awesome. It was a hard one to catch but thanks to your debug info it was easy to figure it out.

Enjoy,

– Gato