Bug #836

avatar

NullReferenceException in IrcClient._Event_JOIN()

Added by Mirco Bauer 4248 days ago. Updated 4151 days ago.

Status:Closed Start:05/05/2013
Priority:Normal Due date:
Assigned to:avatarMirco Bauer % Done:

100%

Category:Engine IRC
Target version:0.8.11.1
Complexity:

High

Found in Version:

smuxi-server 0.8.11.0 (master/bf0ed8b)

Votes: 1 (View)

Description

15:50:16     WRITE: NICK XXX
15:50:16     WRITE: USER XXX 0 * :YYY
15:50:16 -!- Connection to irc.freenode.net established
15:50:26 -!- Connection error! Reason: Object reference not set to an instance of an object
15:50:26 -!- Reconnecting to irc.freenode.net...
15:50:26 -!- Disconnected from freenode
15:52:26     WRITE: NICK XXX
15:52:26     WRITE: USER XXX 0 * :YYY
15:52:26 -!- Connection to irc.freenode.net established
15:52:36 -!- Connection error! Reason: Object reference not set to an instance of an object
15:52:36 -!- Reconnecting to irc.freenode.net...
15:52:36 -!- Disconnected from freenode
15:55:06 -!- Connection error! Reason: Object reference not set to an instance of an object
15:55:06 -!- Reconnecting to irc.freenode.net...
15:55:07 -!- Disconnected from freenode
15:57:35     WRITE: NICK XXX
15:57:35     WRITE: USER XXX 0 * :YYY
15:57:35 -!- Connection to irc.freenode.net established
15:57:45 -!- Connection error! Reason: Object reference not set to an instance of an object
15:57:45 -!- Reconnecting to irc.freenode.net...
15:57:45 -!- Disconnected from freenode
2013-05-05 20:29:18,186 [IrcProtocolManager (irc.freenode.net:6667) listener] ERROR Smuxi.Engine.IrcProtocolManager - _Run(): exception in 
_Listen() occurred!
System.NullReferenceException: Object reference not set to an instance of an object
  at Meebey.SmartIrc4net.IrcClient._Event_JOIN (Meebey.SmartIrc4net.IrcMessageData ircdata) [0x00103] in /usr/local/src/smuxi/lib/SmartIrc4
net/src/IrcClient/IrcClient.cs:1808 
  at Meebey.SmartIrc4net.IrcClient._HandleEvents (Meebey.SmartIrc4net.IrcMessageData ircdata) [0x001a9] in /usr/local/src/smuxi/lib/SmartIrc4net/src/IrcClient/IrcClient.cs:1250 
  at Meebey.SmartIrc4net.IrcClient._Worker (System.Object sender, Meebey.SmartIrc4net.ReadLineEventArgs e) [0x00000] in /usr/local/src/smuxi/lib/SmartIrc4net/src/IrcClient/IrcClient.cs:948 
  at (wrapper delegate-invoke) Meebey.SmartIrc4net.ReadLineEventHandler:invoke_void__this___object_ReadLineEventArgs (object,Meebey.SmartIrc4net.ReadLineEventArgs)
  at (wrapper delegate-invoke) Meebey.SmartIrc4net.ReadLineEventHandler:invoke_void__this___object_ReadLineEventArgs (object,Meebey.SmartIrc4net.ReadLineEventArgs)
  at Meebey.SmartIrc4net.IrcConnection.ReadLine (Boolean blocking) [0x000a1] in /usr/local/src/smuxi/lib/SmartIrc4net/src/IrcConnection/IrcConnection.cs:884 
  at Meebey.SmartIrc4net.IrcConnection.Listen (Boolean blocking) [0x0000b] in /usr/local/src/smuxi/lib/SmartIrc4net/src/IrcConnection/IrcConnection.cs:823 
  at Meebey.SmartIrc4net.IrcConnection.Listen () [0x00000] in /usr/local/src/smuxi/lib/SmartIrc4net/src/IrcConnection/IrcConnection.cs:837 
  at Smuxi.Engine.IrcProtocolManager._Listen () [0x00000] in <filename unknown>:0 

Related issues

related to Smuxi - Bug #783 ArgumentException in IrcProtocolManager._OnNames() Closed 11/25/2012
related to Smuxi - Bug #808 Reconnect loop Closed 01/30/2013

History

Updated by Mirco Bauer 4234 days ago

avatar
  • Target version changed from 0.8.10.2 to 0.8.11.1

Updated by Infinity Zero 4152 days ago

avatar

This leaves the network disconnected but all tabs open. Worse, there is no status update in either those tabs or their logs that this disconnection has taken place! This seems like a separate bug of "not enough error detection". If the network disconnects because of some other bug (i.e. not this bug), at least the tabs and logs should say so!

Back to this bug; after the disconnect, when one tries to reconnect using /server, without closing existing tabs, subsequent channel joins fail with Db4objects.Db4o.Ext.DatabaseFileLockedException instead of giving a "Already joined to channel" warning as usual.

013-08-02 19:12:39,506 [Threadpool worker] ERROR Smuxi.Engine.Db4oMessageBuffer - InitDatabase(): failed to open message database: /home/infinity0/.local/share/smuxi/buffers/infinity0/irc/oftc/oftc.db4o
Db4objects.Db4o.Ext.DatabaseFileLockedException: /home/infinity0/.local/share/smuxi/buffers/infinity0/irc/oftc/oftc.db4o ---> System.IO.IOException: Sharing violation on path /home/infinity0/.local/share/smuxi/buffers/infinity0/irc/oftc/oftc.db4o
  at System.IO.FileStream..ctor (System.String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, Boolean anonymous, FileOptions options) [0x00000] in <filename unknown>:0 
  at System.IO.FileStream..ctor (System.String path, FileMode mode, FileAccess access, FileShare share) [0x00000] in <filename unknown>:0 
  at (wrapper remoting-invoke-with-check) System.IO.FileStream:.ctor (string,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare)
  at Sharpen.IO.RandomAccessFile..ctor (System.String file, Boolean readOnly, Boolean lockFile) [0x00007] in /tmp/buildd/smuxi-0.8.11/lib/db4o-net/Db4objects.Db4o/native/Sharpen/IO/RandomAccessFile.cs:22 
  at Db4objects.Db4o.IO.RandomAccessFileFactory.NewRandomAccessFile (System.String path, Boolean readOnly, Boolean lockFile) [0x00006] in /tmp/buildd/smuxi-0.8.11/lib/db4o-net/Db4objects.Db4o/native/Db4objects.Db4o/IO/RandomAccessFileFactory.cs:18 
  --- End of inner exception stack trace ---
  at Db4objects.Db4o.IO.RandomAccessFileFactory.NewRandomAccessFile (System.String path, Boolean readOnly, Boolean lockFile) [0x0003a] in /tmp/buildd/smuxi-0.8.11/lib/db4o-net/Db4objects.Db4o/native/Db4objects.Db4o/IO/RandomAccessFileFactory.cs:30 
  at Db4objects.Db4o.IO.FileStorage+FileBin..ctor (Db4objects.Db4o.IO.BinConfiguration config) [0x00020] in /tmp/buildd/smuxi-0.8.11/lib/db4o-net/Db4objects.Db4o/Db4objects.Db4o/IO/FileStorage.cs:56 
  at Db4objects.Db4o.IO.FileStorage.Open (Db4objects.Db4o.IO.BinConfiguration config) [0x00001] in /tmp/buildd/smuxi-0.8.11/lib/db4o-net/Db4objects.Db4o/Db4objects.Db4o/IO/FileStorage.cs:32 
  at Db4objects.Db4o.IO.StorageDecorator.Open (Db4objects.Db4o.IO.BinConfiguration config) [0x00001] in /tmp/buildd/smuxi-0.8.11/lib/db4o-net/Db4objects.Db4o/Db4objects.Db4o/IO/StorageDecorator.cs:31 
  at Db4objects.Db4o.IO.CachingStorage.Open (Db4objects.Db4o.IO.BinConfiguration config) [0x00001] in /tmp/buildd/smuxi-0.8.11/lib/db4o-net/Db4objects.Db4o/Db4objects.Db4o/IO/CachingStorage.cs:72 
  at Db4objects.Db4o.Internal.IoAdaptedObjectContainer.OpenImpl () [0x000a7] in /tmp/buildd/smuxi-0.8.11/lib/db4o-net/Db4objects.Db4o/Db4objects.Db4o/Internal/IoAdaptedObjectContainer.cs:63 
  at Db4objects.Db4o.Internal.ObjectContainerBase+_IRunnable_129.Run () [0x00078] in /tmp/buildd/smuxi-0.8.11/lib/db4o-net/Db4objects.Db4o/Db4objects.Db4o/Internal/ObjectContainerBase.cs:166 
  at Db4objects.Db4o.Foundation.DynamicVariable.With (System.Object value, IRunnable block) [0x0001a] in /tmp/buildd/smuxi-0.8.11/lib/db4o-net/Db4objects.Db4o/Db4objects.Db4o/Foundation/DynamicVariable.cs:63 
  at Db4objects.Db4o.Foundation.Environments.RunWith (IEnvironment environment, IRunnable runnable) [0x00001] in /tmp/buildd/smuxi-0.8.11/lib/db4o-net/Db4objects.Db4o/Db4objects.Db4o/Foundation/Environments.cs:32 
  at Db4objects.Db4o.Internal.ObjectContainerBase.WithEnvironment (IRunnable runnable) [0x00001] in /tmp/buildd/smuxi-0.8.11/lib/db4o-net/Db4objects.Db4o/Db4objects.Db4o/Internal/ObjectContainerBase.cs:193 
  at Db4objects.Db4o.Internal.ObjectContainerBase.Open () [0x00001] in /tmp/buildd/smuxi-0.8.11/lib/db4o-net/Db4objects.Db4o/Db4objects.Db4o/Internal/ObjectContainerBase.cs:144 
  at Db4objects.Db4o.Internal.IoAdaptedObjectContainer..ctor (IConfiguration config, System.String fileName) [0x0001a] in /tmp/buildd/smuxi-0.8.11/lib/db4o-net/Db4objects.Db4o/Db4objects.Db4o/Internal/IoAdaptedObjectContainer.cs:35 
  at Db4objects.Db4o.Internal.ObjectContainerFactory.OpenObjectContainer (IEmbeddedConfiguration config, System.String databaseFileName) [0x00013] in /tmp/buildd/smuxi-0.8.11/lib/db4o-net/Db4objects.Db4o/Db4objects.Db4o/Internal/ObjectContainerFactory.cs:19 
  at Db4objects.Db4o.Db4oEmbedded.OpenFile (IEmbeddedConfiguration config, System.String databaseFileName) [0x0000e] in /tmp/buildd/smuxi-0.8.11/lib/db4o-net/Db4objects.Db4o/Db4objects.Db4o/Db4oEmbedded.cs:97 
  at Smuxi.Engine.Db4oMessageBuffer.OpenDatabase () [0x00015] in /tmp/buildd/smuxi-0.8.11/src/Engine/MessageBuffers/Db4oMessageBuffer.cs:399 
  at Smuxi.Engine.Db4oMessageBuffer.InitDatabase () [0x00008] in /tmp/buildd/smuxi-0.8.11/src/Engine/MessageBuffers/Db4oMessageBuffer.cs:334 

Updated by Mirco Bauer 4151 days ago

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

I believe this was a symptom of state corruption caused by a bug in the IRC socket buffer/queue, fixed in 37cc7c4acfb42fd5dec1d1366e7f9a212fe261d5

Updated by Mirco Bauer 4151 days ago

avatar

See also #783

Also available in: Atom PDF