You are here

Coccinella hangs when connecting

When connecting to the server, Coccinella will frequently hang and (after 1 minute) return an error:

server chat.example.com did not respond: timeout

It seems that the error occurs after another client disconnects (including the same client). For example, if I login (which works), logout (which works) and login, it will hang. If I login and logout, and another client (even with a different program, such as psi) tries to connect, that client will also hang. But, the next time a connection is attempted, it will work. So, it only fails once for every Coccinella log off.

Other clients don't seem to have this problem (psi). I am connecting to jabberd2 on win32. Now, it must have something to do with the server, as different machines have trouble connecting after the problem occurs. But, only Coccinella is causing the problem currently. Is it doing something strange on exit?

Ideally the server would not allow a client to cause problems like this, but both seem to be at fault.

-Dan

Forum: 

Seems that it stops during the login process. Could you try to switch on debugging (menu: Info/Debug) and provide the xml so I have a chance to see where in the process it hangs.

.

<presence type="unavailable" >
<status>Logged out</status>
</presence>

It seems the status is not set on Coccinella or it could be that Coccinella has a </stream:stream> tag?

I've noticed that the same connection problem occurs with Spark since I last posted. Here is the info from Coccinella:

-------------------- First connection

SEND: <?xml version='1.0' encoding='UTF-8'?><stream:stream xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' xml:lang='en' to='chatter.domain.com' version='1.0'>
RECV: <?xml version='1.0'?><stream:stream xmlns:stream='http://etherx.jabber.org/streams' xmlns='jabber:client' from='chatter.domain.com' version='1.0' id='8btkqvy7x3ln7kpfumk71xhg6c8wau86h6u250ar'>
RECV: <stream:features xmlns:stream='http://etherx.jabber.org/streams'><mechanisms xmlns='urn:ietf:params:xml:ns:xmpp-sasl'><mechanism>PLAIN</mechanism></mechanisms><auth xmlns='http://jabber.org/features/iq-auth'/></stream:features>
SEND: <auth xmlns='urn:ietf:params:xml:ns:xmpp-sasl' mechanism='PLAIN'>dG9ueWVAY2hhdC5pZW1mZy5jb20AdG9ueWUAZmF0ZmF0ZmF0</auth>
RECV: <success xmlns='urn:ietf:params:xml:ns:xmpp-sasl'/>
SEND: <stream:stream xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' to='chatter.domain.com' xml:lang='en' version='1.0'>
RECV: <?xml version='1.0'?><stream:stream xmlns:stream='http://etherx.jabber.org/streams' xmlns='jabber:client' from='chatter.domain.com' version='1.0' id='eowm39vfp8jb9t8zfeh0ro9r7feyh7zjfw9chsfm'>
RECV: <stream:features xmlns:stream='http://etherx.jabber.org/streams'><bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'/><session xmlns='urn:ietf:params:xml:ns:xmpp-session'/></stream:features>
SEND: <iq type='set' id='1001'><bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'><resource>Coccinella@IEM-user</resource></bind></iq>
RECV: <iq xmlns='jabber:client' id='1001' type='result'><bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'><jid>user@chatter.domain.com/Coccinella@IEM-user</jid></bind></iq>
SEND: <iq type='set' id='1002'><session xmlns='urn:ietf:params:xml:ns:xmpp-session'/></iq>
RECV: <iq xmlns='jabber:client' id='1002' type='result'/>
SEND: <iq type='get' id='1003' to='chatter.domain.com'><query xmlns='http://jabber.org/protocol/disco#items'/></iq>
SEND: <iq type='get' id='1004' to='chatter.domain.com'><query xmlns='http://jabber.org/protocol/disco#info'/></iq>
SEND: <iq type='get' id='1005'><query xmlns='jabber:iq:private'><storage xmlns='storage:bookmarks'/></query></iq>
SEND: <iq type='get' id='1006'><query xmlns='jabber:iq:roster'/></iq>
SEND: <presence><x xmlns='http://coccinella.sourceforge.net/protocol/servers' ver='0.96.4.1'><ip protocol='putget' port='8235'>192.168.4.66</ip><ip protocol='http' port='8077'>192.168.4.66</ip></x><c xmlns='http://jabber.org/protocol/caps' node='http://coccinella.sourceforge.net/protocol/caps' ver='aImx072yQt0U2xRZEDcq3T3a4DM=' ext='activity geoloc iax mood nick whiteboard'/><x xmlns='http://jabber.org/protocol/jingle/media/audio' type='available'/></presence>
RECV: <iq xmlns='jabber:client' id='1003' from='chatter.domain.com' to='user@chatter.domain.com/Coccinella@IEM-user' type='result'><query xmlns='http://jabber.org/protocol/disco#items'/></iq><iq xmlns='jabber:client' id='1004' from='chatter.domain.com' to='user@chatter.domain.com/Coccinella@IEM-user' type='result'><query xmlns='http://jabber.org/protocol/disco#info'><identity name='Jabber IM server' type='im' category='server'/><feature var='jabber:iq:private'/><feature var='presence'/><feature var='jabber:iq:time'/><feature var='jabber:iq:agents'/><feature var='urn:xmpp:ping'/><feature var='http://jabber.org/protocol/vacation'/><feature var='vcard-temp'/><feature var='jabber:iq:version'/><feature var='message'/><feature var='msgoffline'/><feature var='jabber:iq:privacy'/><feature var='http://jabber.org/protocol/amp'/><feature var='jabber:iq:roster'/><feature var='iq'/><feature var='jabber:iq:last'/><feature var='http://jabber.org/protocol/disco'/></query></iq><iq xmlns='jabber:client' id='1005' type='result'><query xmlns='jabber:iq:private'><storage xmlns='storage:bookmarks'/></query></iq><iq xmlns='jabber:client' id='1006' type='result'><query xmlns='jabber:iq:roster'><item name='friend1' subscription='both' jid='friend1@chatter.domain.com'/><item name='friend2' subscription='both' jid='friend2@chatter.domain.com'/></query></iq>
RECV: <presence xmlns='jabber:client' to='user@chatter.domain.com/Coccinella@IEM-user' from='friend1@chatter.domain.com/spark' id='VggUL-31'><x xmlns='jabber:x:delay' from='friend1@chatter.domain.com/spark' stamp='20080121T16:42:38'/><status>Away due to idle.</status><priority>0</priority><show>away</show></presence>
SEND: <presence type='unavailable'/>
SEND: </stream:stream>

-------------------- Second connection

SEND: <?xml version='1.0' encoding='UTF-8'?><stream:stream xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' xml:lang='en' to='chatter.domain.com' version='1.0'>

The first connection succeeds as far as I can tell from the xml I/O. The only "nonstandard" I can see is the PLAIN sasl mechanism but that shouldn't be a problem.

The second attempt fails because the server doesn't respond on the first stream element as far as I can tell. Difficult to say what is happening.

We use a "@" in the resource part which fooled the AIM XMPP server, so you could try to explicitly set your full JID in the Login dialog as:
myname@chatter.domain.com/zzz

Didn't help. Thanks, though.