Wildfire 2.4.4 on RHEL 3
We’‘re having a problem where the server will suddenly stop reading port 5222 and locks up so tight it can’'t be shutdown cleanly but requires a kill -9. The last thing the server seems to be doing before the lock-up is processing a roster with a malformed JID entry.
2006.03.08 10:55:29 org.jivesoftware.wildfire.handler.IQRosterHandler.handleIQ(IQRosterHandler.java: 118) Internal server error
java.lang.IllegalArgumentException: Illegal JID: first last@jabber.wildfire.example.com
at org.xmpp.packet.JID.init(JID.java:398)
at org.xmpp.packet.JID.(JID.java:254)
at org.xmpp.packet.Roster.getItems(Roster.java:236)
at org.jivesoftware.wildfire.handler.IQRosterHandler.manageRoster(IQRosterHandler. java:196)
at org.jivesoftware.wildfire.handler.IQRosterHandler.handleIQ(IQRosterHandler.java :103)
at org.jivesoftware.wildfire.handler.IQHandler.process(IQHandler.java:48)
at org.jivesoftware.wildfire.IQRouter.handle(IQRouter.java:256)
at org.jivesoftware.wildfire.IQRouter.route(IQRouter.java:79)
at org.jivesoftware.wildfire.PacketRouter.route(PacketRouter.java:65)
at org.jivesoftware.wildfire.net.SocketReader.processIQ(SocketReader.java:395)
at org.jivesoftware.wildfire.net.ClientSocketReader.processIQ(ClientSocketReader.j ava:50)
at org.jivesoftware.wildfire.net.SocketReader.readStream(SocketReader.java:263)
at org.jivesoftware.wildfire.net.SocketReader.run(SocketReader.java:119)
at java.lang.Thread.run(Unknown Source)
Caused by: org.jivesoftware.stringprep.StringprepException: Contains prohibited code points.
at org.jivesoftware.stringprep.Stringprep.nodeprep(Stringprep.java:120)
at org.xmpp.packet.JID.init(JID.java:347)
… 13 more
The actual JID involved contains an underscore ‘‘first_last’’ even though the log message appears to be reporting the JID as ‘‘first last’’. Is it possible that the presence of a malformed JID in a user-supplied roster entry can hang the entire server? Is there some way we can sanity check roster entries before they are accepted by the server? Or are we on the wrong track in trying to diagnose this problem?
Thanks,
Bryan.