DBQueueManager for JabberQueueHandler can hang on some cases. I'm quite sure that the line 58 ( http://gitorious.org/laconica/mainline/blobs/master/lib/dbqueuemanager.php) causes the problem. The line is:
$notice = $this->_nextItem($queue, null); Now if there are no notices in the jabber queue, the loop in the _nextItem function will not end. Because of that JabberQueueHandler will not check if there are messages in XMPP connection buffer, i.e. no $handler->idle(). In this case if notices posted from XMPP clients end up to JabberQueueHandler*, they are not forwarded to XMPPDaemon daemon until the loop in _nextItem function ends. Is this on purpose done like this? Bigger sites which have lot of people posting notices, this shouldn't be a problem but on smaller sites having XMPP heavy users this could be problem. I can think of at least two ways to fix this: 1. replace the null with some timeout 2. change _netItem function to service XMPP buffer -- Jaakko Sent from Helsinki, ES, Finland *) It's a different but good question why many of my notices end up into JabberQueueHandler.
_______________________________________________ Laconica-dev mailing list [email protected] http://mail.laconi.ca/mailman/listinfo/laconica-dev
