ortuman / jackal

💬 Instant messaging server for the Extensible Messaging and Presence Protocol (XMPP).
Apache License 2.0
1.44k stars 128 forks source link

User can get stuck in online state, yet no way to go offline #5

Closed readyblue closed 6 years ago

readyblue commented 6 years ago

After a while of running server with about 3 testing users, one user get stuck in online state, even if there was no client connected to that user. Server stop sending pings, so the user cannot even timeout and disconnect. Incoming messages to this stucked user was treated by server as if it was online, yet no pings were sent.

This stucked user never disconnect. When client loged in to this stucked user, it can send the messages, but was unable to receive new messages (only OTR session control messages). It is difficult to spot this issue by users, as delivery reports working and showing that message was received even when it is not !

From this point, there was no help, not even logout and login again, remove user from contact and authorize it back again from both sides.

There is only fix when this happens to restart the server. Nothing clients can do about this stucked user

readyblue commented 6 years ago

I was able to catch this issue with [debug] loging on. It has started with error: [ERR] stream:803 - read tcp 11.22.33.44:5222->55.66.77.88:48934: i/o timeout after that, user user_1 get stuck online.

Attaching [debug] log log.txt

ortuman commented 6 years ago

Ok. Thanks for the report. I'll study the case asap.

readyblue commented 6 years ago

I have tested the latest version: jackal version: 0.1.5 but the issue is remain the same. Everything goes wrong after that [ERR] stream:803 After that, user get stuck online there

readyblue commented 6 years ago

new version 0.1.5 bring ability to stucked user to comunicate once it really come back online. This is new as on earlier version user was not able to receive message. User is still stucked online and stay that way even if login and logout properly.

readyblue commented 6 years ago

many thanks @ortuman in jackal version: 0.1.6 this issue is resolved