xmpp icon indicating copy to clipboard operation
xmpp copied to clipboard

Pulling Roster fails with a large roster set

Open dennishenry opened this issue 10 years ago • 2 comments

When pulling a large roster of users (>250) we are having an issue where the reading of the socket stops and does not error or provide a valid result, which causes the web server to eventually time out sending a message. The timeout appears to happen around or on line 103 of xmpp/src/Connection/Socket.php. When viewing the debug log, we can see it looping multiple times over the packet, and eventually it just stops. If we increase the value in xmpp/src/Connection/Socket.php on line 53 to 8192 from 4096, the issue disappears and we are able to load rosters and send messages again. Obviously, this is not an ideal way to resolve the problem, but after a few hours of debugging, we can't see exactly why this issue is presenting. Please let us know if any further information is assistive to solve this bug.

Thank you

dennishenry avatar Feb 20 '15 21:02 dennishenry

Is it possible that we run into a timeout here? Does increasing the timeout on the Options object help?

fabiang avatar Feb 25 '15 13:02 fabiang

It doesn't appear to be timeout related. The entire process from the initialization of the library to it pausing takes less than 2 seconds. During those two seconds, it chunks up the roster into 7 groups. Also, doubling the timeout to 60 doesn't have any affect. The last thing seen in the debug log is:

[2015-02-25 11:13:33] xmpp.DEBUG: Listener "Fabiang\Xmpp\EventListener\Stream\Roster" is currently blocking [] []
[2015-02-25 11:13:33] xmpp.DEBUG: Listener "Fabiang\Xmpp\EventListener\Stream\Roster" is currently blocking [] []

And I can just let it sit until eventually the web server times out. Please let me know if any further information would be assistive. Please note, we can 100% recreate this in our development environment so I can run tests easily as you need.

Thanks

dennishenry avatar Feb 25 '15 16:02 dennishenry