Bug #836
NullReferenceException in IrcClient._Event_JOIN()
Status: | Closed | Start: | 05/05/2013 | |
Priority: | Normal | Due date: | ||
Assigned to: | Mirco 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
History
Updated by Mirco Bauer 4237 days ago
- Target version changed from 0.8.10.2 to 0.8.11.1
Updated by Infinity Zero 4155 days ago
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 4154 days ago
- 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