Bug #132

avatar

person list empty in group chat after /reconnect

Added by Mirco Bauer 5639 days ago. Updated 5010 days ago.

Status:Closed Start:
Priority:High Due date:
Assigned to:avatarMirco Bauer % Done:

100%

Category:Frontend GNOME
Target version:0.8
Complexity:

High

Found in Version:

Votes: 0

Description

The IRC connection was gone for some reason and when using /reconnect, it reconnected and joined the channels correctly. You can send and receive messages, but the person list stays empty. When re-attaching the frontend the person list is populated again, so something during re-sync or so fails for currently attached frontends. Either a bug in Engine or Frontend-GNOME, not sure.


Related issues

duplicated by Smuxi - Bug #341 /rejoin does not load user-list correctly Closed 02/07/2010

Associated revisions

Revision 7f371f0cbeb41f030f34022d83ab82b027868db6
Added by Mirco Bauer 5024 days ago

Added bug comment (references: #132)

Revision b350113d8efe113e130f595c9c4677105a3b52f7
Added by Mirco Bauer 5010 days ago

Fixed empty userlists on re-enabled group chats. (closes: #132)

History

Updated by Mirco Bauer 5594 days ago

avatar

can't reproduce this one with 0.6.2 neither 0.6.3~pre

Updated by Mirco Bauer 5554 days ago

avatar

This might be related to channels that are temporarly not available for joining. The channel would stay in the disabled state that way.

Updated by Mirco Bauer 5272 days ago

avatar

This issue is still present in 0.6.4.1 and is not related to temporarly not available channels. If the IRC server dies and smuxi looses the connection sooner or later then for some reason it's not gracefully disconnecting from the server. The network status says disconnected, the person list of group chats are empty but the topic remains?!? and the messages are still there (as expected). I suspect it's not really disabling the chats correctly...

Updated by Mirco Bauer 5272 days ago

avatar

After /reconnect you can use /rejoin to get the person list back.

Updated by Mirco Bauer 5188 days ago

avatar
  • Target version set to 0.7.2
  • Complexity set to High

Updated by Mirco Bauer 5024 days ago

avatar
  • Target version changed from 0.7.2 to 0.8

I still can't reproduce this one. I tried unplugging my network cable while being connected to a server and then replugging it in after Smuxi decided to go into the disconnected and also "given up" state. From both states it correctly reconnects and rejoins with a proper userlist. Maybe the bug is not in the chat handling but instead in the Gtk.TreeView itself? Say not recognizing the repopulated treeview model or something... Postponing to 0.8

Updated by Mirco Bauer 5010 days ago

avatar
Ok, this issue finally happened again for me. Here some events to led to it:
  1. connection to GIMPnet was lost caused by a ping timeout triggered from the client side
  2. aboout 10 hours later the frontend connects
  3. user notices unconnected GIMPnet state
  4. user issues /reconnect command
  5. connection to GIMPnet is back
  6. all channels are rejoined but userlist remains empty, new messages are showing up
Log dump from losing the connection (see 1.):
2010-08-04 02:36:50,404 [IrcProtocolManager (irc.de.gimp.org:6666) lag watcher] DEBUG Smuxi.Engine.IrcProtocolManager - _LagWatcher(): lag: 294.696492 second
s, difference: 10 seconds
2010-08-04 02:36:50,404 [IrcProtocolManager (irc.de.gimp.org:6666) lag watcher] DEBUG TRACE - [smuxi-engine.dll] Session.UpdateNetworkStatus()
2010-08-04 02:36:50,404 [IrcProtocolManager (irc.efnet.net:6666) lag watcher] DEBUG Smuxi.Engine.IrcProtocolManager - _LagWatcher(): lag: 0.11604 seconds, di
fference: 0 seconds
2010-08-04 02:36:50,404 [IrcProtocolManager (irc.freenode.net:6666) lag watcher] DEBUG Smuxi.Engine.IrcProtocolManager - _LagWatcher(): lag: 0.128007 seconds
, difference: 0 seconds
2010-08-04 02:36:50,404 [IrcProtocolManager (irc.oftc.net:6668) lag watcher] DEBUG Smuxi.Engine.IrcProtocolManager - _LagWatcher(): lag: 0.03206 seconds, dif
ference: 0 seconds
2010-08-04 02:36:55,780 [IrcProtocolManager (irc.de.gimp.org:6666) listener] DEBUG TRACE - [smuxi-engine-irc.dll] IrcProtocolManager._OnDisconnected(sender =
 Meebey.SmartIrc4net.IrcClient, e = System.EventArgs)
2010-08-04 02:36:55,781 [IrcProtocolManager (irc.de.gimp.org:6666) listener] DEBUG TRACE - [smuxi-engine.dll] Session.DisableChat(chat = <GIMPNet (IRC) (not connected)/#mono>)
2010-08-04 02:36:55,781 [IrcProtocolManager (irc.de.gimp.org:6666) listener] DEBUG TRACE - [smuxi-engine.dll] Session.DisableChat(chat = <GIMPNet (IRC) (not connected)/#monodev>)
2010-08-04 02:36:55,781 [IrcProtocolManager (irc.de.gimp.org:6666) listener] DEBUG TRACE - [smuxi-engine.dll] Session.DisableChat(chat = <GIMPNet (IRC) (not connected)/#monodevelop>)
2010-08-04 02:36:55,781 [IrcProtocolManager (irc.de.gimp.org:6666) listener] DEBUG TRACE - [smuxi-engine.dll] Session.DisableChat(chat = <GIMPNet (IRC) (not connected)/#monsoon>)
2010-08-04 02:36:55,781 [IrcProtocolManager (irc.de.gimp.org:6666) listener] DEBUG TRACE - [smuxi-engine.dll] Session.DisableChat(chat = <GIMPNet (IRC) (not connected)/jhill_>)
2010-08-04 02:36:55,781 [IrcProtocolManager (irc.de.gimp.org:6666) listener] DEBUG TRACE - [smuxi-engine.dll] ProtocolManagerBase.OnDisconnected(e = System.EventArgs)
2010-08-04 02:36:55,781 [IrcProtocolManager (irc.de.gimp.org:6666) listener] DEBUG TRACE - [smuxi-engine.dll] Session.UpdateNetworkStatus()

Updated by Mirco Bauer 5010 days ago

avatar
Look what I found with the help of the logs and being finally able to reproduce it:
2010-08-04 15:50:38,981 [IdleWorkerThread (irc.oftc.net:6667)] WARN  SOCKET - ping timeout, connection lost
2010-08-04 15:50:38,989 [IrcProtocolManager (irc.oftc.net:6667) listener] DEBUG TRACE - [smuxi-engine-irc.dll] IrcProtocolManager._OnDisconnected(sender = Meebey.SmartIrc4net.IrcClient, e = System.EventArgs)
2010-08-04 15:50:38,989 [IrcProtocolManager (irc.oftc.net:6667) listener] DEBUG TRACE - [smuxi-engine.dll] Session.DisableChat(chat = <OFTC (IRC) (not connected)/#smuxi-test>)
2010-08-04 15:50:38,989 [IrcProtocolManager (irc.oftc.net:6667) listener] DEBUG TRACE - [smuxi-engine.dll] ProtocolManagerBase.OnDisconnected(e = System.EventArgs)

2010-08-04 15:51:56,373 [-1268688016] DEBUG Smuxi.Engine.Session - DeregisterFrontendUI(ui): deregistering UI with URI: 4fdaccc1_eeb0_4975_8df1_987431381f87/935daa_2.rem
2010-08-04 15:51:56,373 [-1268688016] DEBUG TRACE - [smuxi-engine.dll] Session.DeregisterFrontendUI(ui = Smuxi.Frontend.Gnome.GnomeUI)

2010-08-04 15:52:30,573 [-1268688016] DEBUG TRACE - [smuxi-engine.dll] Session.RegisterFrontendUI(ui = Smuxi.Frontend.Gnome.GnomeUI)
2010-08-04 15:52:30,573 [-1268688016] DEBUG Smuxi.Engine.Session - Registering UI with URI: f5787d21_c37a_436c_997a_3cc248739e9e/9bbd88_2.rem
2010-08-04 15:52:30,573 [-1268688016] DEBUG TRACE - [smuxi-engine.dll] FrontendManager..ctor(session = Smuxi.Engine.Session, ui = Smuxi.Frontend.Gnome.GnomeUI)
2010-08-04 15:52:30,719 [-1274115216] DEBUG TRACE - [smuxi-engine.dll] Session.GetFrontendManager(ui = Smuxi.Frontend.Gnome.GnomeUI)
2010-08-04 15:52:30,730 [-1274115216] DEBUG TRACE - [smuxi-engine.dll] FrontendManager.Sync()
2010-08-04 15:52:31,037 [-1275184272] DEBUG TRACE - [smuxi-engine.dll] FrontendManager.AddSyncedChat(chatModel = <(null)/smuxi>)
2010-08-04 15:52:31,246 [-1275184272] DEBUG TRACE - [smuxi-engine.dll] FrontendManager.AddSyncedChat(chatModel = <OFTC (IRC) (not connected)/IRC OFTC>)
2010-08-04 15:53:18,191 [-1275184272] DEBUG TRACE - [smuxi-engine.dll] FrontendManager.AddSyncedChat(chatModel = <OFTC (IRC) (not connected)/#smuxi-test>)
                                                                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
!!! BUG BUG BUG !!!
Now the frontend manager will believe this chat is fully synced despite the disabled state and re-syncs will be ignored from that point on!

2010-08-04 15:54:29,585 [WriteThread (irc.oftc.net:6667)] DEBUG SOCKET - sent: "JOIN #smuxi-test" 
2010-08-04 15:54:29,622 [ReadThread (irc.oftc.net:6667)] DEBUG SOCKET - received: ":[email protected] JOIN :#smuxi-test" 
2010-08-04 15:54:29,622 [ReadThread (irc.oftc.net:6667)] DEBUG SOCKET - received: ":coulomb.oftc.net 353 meebey_ = #smuxi-test :meebey_ meebey" 
2010-08-04 15:54:29,622 [ReadThread (irc.oftc.net:6667)] DEBUG SOCKET - received: ":coulomb.oftc.net 366 meebey_ #smuxi-test :End of /NAMES list." 

2010-08-04 15:54:29,625 [IrcProtocolManager (irc.oftc.net:6667) listener] DEBUG TRACE - [smuxi-engine.dll] Session.EnableChat
(chat = <OFTC (IRC)/#smuxi-test>)

2010-08-04 15:54:30,374 [IrcProtocolManager (irc.oftc.net:6667) listener] DEBUG CHANNELSYNCING - active synced: #smuxi-test (in 0.749752 sec)
2010-08-04 15:54:30,374 [IrcProtocolManager (irc.oftc.net:6667) listener] DEBUG Smuxi.Engine.IrcProtocolManager - _OnChannelActiveSynced() e.Data.Channel: #smuxi-test
2010-08-04 15:54:30,374 [IrcProtocolManager (irc.oftc.net:6667) listener] DEBUG TRACE - [smuxi-engine.dll] Session.SyncChat(chat = <OFTC (IRC)/#smuxi-test>)

Updated by Mirco Bauer 5010 days ago

avatar
  • Status changed from New to Closed
  • % Done changed from 0 to 100

Also available in: Atom PDF