Openfire 3.8.1 Input/Output Error and workaround

After recently upgrading to 3.8.0 and then 3.8.1, a problem where a client could not reconnect to the server appeared. When a client would attempt to reconnect to the server after losing connection for some reason (loss of network, sleep, hibernate, etc) the error in the Pidgin client would display something along the lines of “Server closed connection: Input/Output Error”

The server logs showed (and have been lost due to much troubleshooting and restarting) an Input/Output error failing to write in a cache. The exact cache I could not determine. Initially, a simple restart fixed the problem. Then I found that the roster cache was to blame by flushing the cache’s one by one in the admin interface. When the problem appeared, flushing only the roster cache would fix the problem and allow the client to login.

As a workaround, I set the system property of “cache.username2roster.size” to “0”. In two days since setting that, the problem has not reoccured.

My full setup is as follows:

Openfire 3.8.1 with Kraken 1.1.3beta3 connecting to AIM, Yahoo!, and Gtalk.

Running on Fedora 16, MySQL 5.5.29 community, OpenJDK (IcedTea6 1.11.6) (fedora-71.1.11.6.fc16-i386)

Hope this helps someone!

Hi Ted,

Thanks for the useful info, it led me to the right direction…

I also noticed that the users who couldn’t connect, using pidgin and emacs-jabber, had wrong entries in the rosters. Even though I set the cache to 0, they still wouldn’t login. Removing the wrong entries from their rosters did the trick!