[jdev] Net::Jabber Process() blocking

Bart Matthaei bart at dreamflow.nl
Thu Jun 2 03:11:28 CDT 2005


On Thu, Jun 02, 2005 at 12:57:01PM +1000, Jeremy Lunn wrote:
> On Sun, May 29, 2005 at 08:01:55PM +1000, Jeremy Lunn wrote:
> > Here's a quick and nasty script I wrote to quickly return a list of
> > users logged in, using service discovery (using it with jabberd 2.0s8).
> > It works fine 80% of the time, but sometimes it blocks at the Process 
> > line, even though there's a timeout specified.  Any reason as to why it
> > might be doing this?  Any way I could debug it?
> 
> No one experienced similar problems with Net::Jabber/Net::XMPP?
> I've tried messing around with debug output, it seems that the <iq>
> response is being received but it's not executing the callback for some
> reason.
> 
> I'm guessing it's a bug in Net::Jabber?

Did you strace the process to check what it's doing?
Also, did you make sure the InIQ() process actually returns?

As a comment on your code:

Try creating your own process loop. Something in the line of:

//

...
$con->Send($req);

my $loops = 0;

while($loops < 10) {

	$loops += 1;

	$con->Process(0);
	sleep(1);
}

//

If there is a bug in the Process() function of Net::Jabber, this could
be a workaround.

Regards,

Bart

-- 
Bart Matthaei                      bart at ambrero.nl

Ambrero Software Development
http://www.ambrero.nl/




More information about the JDev mailing list