Openfire 3.3.2 : Packet sent to unreachable address (regression)

Hi,

I was using Wildfire 3.1.1 sucessfully for some time now w/ more than 200 users and several clients (Pandion, Adium, Psi…). Yesterday, I upgraded to the lastest version of Openfire (3.3.2) everything seemed to work. Today, several users complain that they don’t receive messages although they can send them. Another user reported a presence problem : her account was still online but the computer was shut down for several hours. Looking to the logs, I can see a lot of warnings :

(…)

2007.08.23 11:19:55 Packet sent to unreachable address

<iq type=“result” to="mabou@company.fr/Pandion" id=“sd218” from="bedum@company.fr/Pandion">

<query xmlns=“jabber:iq:avatar”>

<data>R0lGODlhUABQAPcAAK2ahHVfTqtmQuebc7ypnN6Ua4Y4Fve0lIx4aKpiOFY lBuqhHhEFpqFcbiF V8arlMepilhJtlNke7WjjLeYeeeje5RSJede4dUJ2crD3hDITQVAvetjLqeiaVyWK2Ve92j d+eTa96Na9h6Y0wYMwgbcUyWDvB6k0vsMwygnwccpqEn4neyTJUnEsxAiwUyU1b eOBP8RXbhRRk/sZ1XGmgYogAAEAPyPUAblkAhwYAssG4T6

(…)

KC/yogEGH7miwNiiABAbeK2p4mXNh3L9/j3419DhQ4gN903cB8Kfv34NShhhY8RIrBKxGqxoAO8R gjOPzqAoM4kAHHmiUlhJUTOFAi4KNCjIkSOFBg2iXJDiw6dKlTdryHBTyFBhRIgPGFLch2Nfxo2x tG6NFQDFo14oAABYcWYFtzIo4AX4Iu9OGitxNcgBWrdQpy10+HgZVkWaF2lr9k3C8fQp1IhU7eAo kzVkLDaQSziisCIRApIEyq4AgBIBgikuOoEy0KmT6NFODPyhcyiBrkNVDv31UgvfCqPCDQ87lOrw cEAAOw==</data>

</query>

</iq>

2007.08.23 12:20:07 Packet sent to unreachable address

<iq type=“get” id=“purple1be898ad” to="aloll@company.fr/Pandion" from="copou@company.fr/Adium">

<query xmlns=“jabber:iq:version”/>

</iq>

2007.08.23 12:20:07 Packet sent to unreachable address

<iq type=“get” id=“purple1be898ae” to="aloll@company.fr/Pandion" from="copou@company.fr/Adium">

<query xmlns=“jabber:iq:last”/>

</iq>

(…)

In the error log :

(…)

2007.08.24 11:31:10 org.jivesoftware.openfire.nio.ConnectionHandler.exceptionCaught(ConnectionHandle r.java:109)

java.lang.ArrayIndexOutOfBoundsException

at java.lang.System.arraycopy(Native Method)

at com.jcraft.jzlib.ZStream.read_buf(ZStream.java:199)

at com.jcraft.jzlib.Deflate.fill_window(Deflate.java:983)

at com.jcraft.jzlib.Deflate.deflate_slow(Deflate.java:1120)

at com.jcraft.jzlib.Deflate.deflate(Deflate.java:1567)

at com.jcraft.jzlib.ZStream.deflate(ZStream.java:133)

at org.apache.mina.filter.support.Zlib.deflate(Zlib.java:176)

at org.apache.mina.filter.CompressionFilter.filterWrite(CompressionFilter.java:198 )

at org.apache.mina.common.support.AbstractIoFilterChain.callPreviousFilterWrite(Ab stractIoFilterChain.java:445)

at org.apache.mina.common.support.AbstractIoFilterChain.access$1400(AbstractIoFilt erChain.java:54)

at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.filterWrite(Ab stractIoFilterChain.java:824)

at org.apache.mina.filter.executor.ExecutorFilter.filterWrite(ExecutorFilter.java: 292)

at org.apache.mina.common.support.AbstractIoFilterChain.callPreviousFilterWrite(Ab stractIoFilterChain.java:445)

at org.apache.mina.common.support.AbstractIoFilterChain.access$1400(AbstractIoFilt erChain.java:54)

at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.filterWrite(Ab stractIoFilterChain.java:824)

at org.apache.mina.filter.codec.ProtocolCodecFilter.filterWrite(ProtocolCodecFilte r.java:227)

at org.apache.mina.common.support.AbstractIoFilterChain.callPreviousFilterWrite(Ab stractIoFilterChain.java:445)

at org.apache.mina.common.support.AbstractIoFilterChain.access$1400(AbstractIoFilt erChain.java:54)

at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.filterWrite(Ab stractIoFilterChain.java:824)

at org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.filterWrite(Abs tractIoFilterChain.java:727)

at org.apache.mina.common.support.AbstractIoFilterChain.callPreviousFilterWrite(Ab stractIoFilterChain.java:445)

at org.apache.mina.common.support.AbstractIoFilterChain.fireFilterWrite(AbstractIo FilterChain.java:436)

at org.apache.mina.transport.socket.nio.SocketSessionImpl.write0(SocketSessionImpl .java:196)

at org.apache.mina.common.support.BaseIoSession.write(BaseIoSession.java:149)

at org.apache.mina.common.support.BaseIoSession.write(BaseIoSession.java:135)

at org.jivesoftware.openfire.nio.NIOConnection.deliver(NIOConnection.java:209)

at org.jivesoftware.openfire.session.ClientSession.deliver(ClientSession.java:728)

at org.jivesoftware.openfire.session.Session.process(Session.java:281)

at org.jivesoftware.openfire.roster.Roster.broadcastPresence(Roster.java:590)

at org.jivesoftware.openfire.handler.PresenceUpdateHandler.broadcastUpdate(Presenc eUpdateHandler.java:258)

at org.jivesoftware.openfire.handler.PresenceUpdateHandler.process(PresenceUpdateH andler.java:113)

at org.jivesoftware.openfire.handler.PresenceUpdateHandler.process(PresenceUpdateH andler.java:88)

at org.jivesoftware.openfire.handler.PresenceUpdateHandler.process(PresenceUpdateH andler.java:151)

at org.jivesoftware.openfire.PresenceRouter.handle(PresenceRouter.java:123)

at org.jivesoftware.openfire.PresenceRouter.route(PresenceRouter.java:69)

at org.jivesoftware.openfire.spi.PacketRouterImpl.route(PacketRouterImpl.java:75)

at org.jivesoftware.openfire.SessionManager.removeSession(SessionManager.java:1535 )

at org.jivesoftware.openfire.SessionManager$ClientSessionListener.onConnectionClos e(SessionManager.java:1596)

at org.jivesoftware.openfire.nio.NIOConnection.notifyCloseListeners(NIOConnection. java:169)

at org.jivesoftware.openfire.nio.NIOConnection.close(NIOConnection.java:152)

at org.jivesoftware.openfire.nio.NIOConnection.systemShutdown(NIOConnection.java:1 59)

at org.jivesoftware.openfire.SessionManager.stop(SessionManager.java:1802)

at org.jivesoftware.openfire.XMPPServer.shutdownServer(XMPPServer.java:859)

at org.jivesoftware.openfire.XMPPServer.access$600(XMPPServer.java:90)

at org.jivesoftware.openfire.XMPPServer$ShutdownHookThread.run(XMPPServer.java:811 )

2007.08.24 11:31:10 org.jivesoftware.openfire.nio.ConnectionHandler.exceptionCaught(ConnectionHandle r.java:109)

java.lang.ArrayIndexOutOfBoundsException

at java.lang.System.arraycopy(Native Method)

at com.jcraft.jzlib.ZStream.read_buf(ZStream.java:199)

at com.jcraft.jzlib.Deflate.fill_window(Deflate.java:983)

at com.jcraft.jzlib.Deflate.deflate_slow(Deflate.java:1120)

at com.jcraft.jzlib.Deflate.deflate(Deflate.java:1567)

at com.jcraft.jzlib.ZStream.deflate(ZStream.java:133)

at org.apache.mina.filter.support.Zlib.deflate(Zlib.java:176)

at org.apache.mina.filter.CompressionFilter.filterWrite(CompressionFilter.java:198 )

at org.apache.mina.common.support.AbstractIoFilterChain.callPreviousFilterWrite(Ab stractIoFilterChain.java:445)

at org.apache.mina.common.support.AbstractIoFilterChain.access$1400(AbstractIoFilt erChain.java:54)

at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.filterWrite(Ab stractIoFilterChain.java:824)

at org.apache.mina.filter.executor.ExecutorFilter.filterWrite(ExecutorFilter.java: 292)

at org.apache.mina.common.support.AbstractIoFilterChain.callPreviousFilterWrite(Ab stractIoFilterChain.java:445)

at org.apache.mina.common.support.AbstractIoFilterChain.access$1400(AbstractIoFilt erChain.java:54)

at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.filterWrite(Ab stractIoFilterChain.java:824)

at org.apache.mina.filter.codec.ProtocolCodecFilter.filterWrite(ProtocolCodecFilte r.java:227)

at org.apache.mina.common.support.AbstractIoFilterChain.callPreviousFilterWrite(Ab stractIoFilterChain.java:445)

at org.apache.mina.common.support.AbstractIoFilterChain.access$1400(AbstractIoFilt erChain.java:54)

at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.filterWrite(Ab stractIoFilterChain.java:824)

at org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.filterWrite(Abs tractIoFilterChain.java:727)

at org.apache.mina.common.support.AbstractIoFilterChain.callPreviousFilterWrite(Ab stractIoFilterChain.java:445)

at org.apache.mina.common.support.AbstractIoFilterChain.fireFilterWrite(AbstractIo FilterChain.java:436)

at org.apache.mina.transport.socket.nio.SocketSessionImpl.write0(SocketSessionImpl .java:196)

at org.apache.mina.common.support.BaseIoSession.write(BaseIoSession.java:149)

at org.apache.mina.common.support.BaseIoSession.write(BaseIoSession.java:135)

at org.jivesoftware.openfire.nio.NIOConnection.deliverRawText(NIOConnection.java:2 44)

at org.jivesoftware.openfire.nio.NIOConnection.deliverRawText(NIOConnection.java:2 26)

at org.jivesoftware.openfire.nio.NIOConnection.systemShutdown(NIOConnection.java:1 57)

at org.jivesoftware.openfire.SessionManager.stop(SessionManager.java:1802)

at org.jivesoftware.openfire.XMPPServer.shutdownServer(XMPPServer.java:859)

at org.jivesoftware.openfire.XMPPServer.access$600(XMPPServer.java:90)

at org.jivesoftware.openfire.XMPPServer$ShutdownHookThread.run(XMPPServer.java:811 )

2007.08.24 11:31:10 org.jivesoftware.openfire.ldap.LdapGroupProvider.populateGroups(LdapGroupProvide r.java:679)

java.lang.NullPointerException

(…)

As this seemed to be caused by a compression lib, I disabled client stream compression, but messages were still dropped.

Finaly, I rolled back to Wildfire 3.1.1 and it solved the issues.

More info : Running on Linux Debian, jre 1.5.0_09 , plenty of memory ( 23% usage in Openfire console), used the db from wildfire in openfire.

BTW : I wanted to create a new issue on jira, but it’s read only isn’t it?

Thanks

We’re having the exact same issue with v 3.3.1. did you ever figure out a solution?

Hi,

No, I had to revert to Wildfire 3.1.1 and I keep checking the changelog of new releases, waiting for this issue to be fixed…

You can to try disabling stream compression, I may help since this issue seems related to it. I didn’t have time to check this : as losing messages was a critical problem in my situation, there was not time for experimentation .

Nicolas

We’re seeing this error a lot as well and we have Openfire 3.3.3 running. “Packet sent to unreachable address”

The errors are all logged in info.log

One interesting thing I’ve noticed because this actually happens to my account as well…

When it’s having this issue, I get no online presence from my Gmail buddies even though I see them online through Google Talk. I’ve only noticed the problem when using Pandion as well.

Today, I was frustrated so I closed Pandion and started using Pidgin. The problem didn’t occur w/ Pidgin. But then I went back into Pandion after, say, 15 mins…and I could once again see my Google contacts and communication was working once again as well.

Is there a Jira bug entry yet?