[Mono-dev] Assertion failure on exit -- NUnit

Casey Marshall casey.s.marshall at gmail.com
Wed Mar 25 15:57:46 EDT 2009


I'm getting an intermittent assertion failure on mono 2.4 RC3, x86_64  
Ubuntu 8.04, when running NUnit 2.4.7 on an assembly that doesn't have  
any unit tests defined in it. It seems like it has something to do  
with what is happening when the program is shutting down.

Naturally, since it's part of our unit test infrastructure, having  
mono exit with SIGABRT occasionally is noise we'd rather not have.

Is this a known issue? Should I file a bug? I also noticed that Mono  
would fail with an assertion error in SetLastError when the program  
was exiting.

Here's part of the output:

**
** ERROR:(reflection.c:10510):mono_reflection_lookup_dynamic_token:  
code should not be reached
Stacktrace:

   at  
System 
.Runtime.Serialization.Formatters.Binary.ObjectWriter.WriteObject  
(System.IO.BinaryWriter,long,object) <0xffffffff>
   at  
System 
.Runtime.Serialization.Formatters.Binary.ObjectWriter.WriteObject  
(System.IO.BinaryWriter,long,object) <0x002a8>
   at  
System 
.Runtime 
.Serialization.Formatters.Binary.ObjectWriter.WriteObjectInstance  
(System.IO.BinaryWriter,object,bool) <0x0016b>
   at  
System 
.Runtime 
.Serialization.Formatters.Binary.ObjectWriter.WriteQueuedObjects  
(System.IO.BinaryWriter) <0x00037>
   at  
System 
.Runtime.Serialization.Formatters.Binary.ObjectWriter.WriteObjectGraph  
(System 
.IO.BinaryWriter,object,System.Runtime.Remoting.Messaging.Header[])  
<0x0005f>
   at  
System 
.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize  
(System.IO.Stream,object,System.Runtime.Remoting.Messaging.Header[])  
<0x0033b>
   at  
System 
.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize  
(System.IO.Stream,object) <0x00023>
   at System.Threading.Thread.set_CurrentCulture  
(System.Globalization.CultureInfo) <0x000df>
   at NUnit.Core.TestContext/ContextHolder.set_CurrentCulture  
(System.Globalization.CultureInfo) <0x0002f>
   at NUnit.Core.TestContext/ContextHolder.ReverseChanges () <0x000b7>
   at NUnit.Core.TestContext.Restore () <0x0001b>
   at NUnit.Core.TestContext.Dispose () <0x0000b>
   at NUnit.Core.TestSuite.Run  
(NUnit.Core.EventListener,NUnit.Core.ITestFilter) <0x003cc>
   at NUnit.Core.SimpleTestRunner.Run  
(NUnit.Core.EventListener,NUnit.Core.ITestFilter) <0x000a7>
   at NUnit.Core.TestRunnerThread.TestRunnerThreadProc () <0x00049>
   at (wrapper runtime-invoke) object.runtime_invoke_void__this__  
(object,intptr,intptr,intptr) <0xffffffff>

[...]

Thread 2 (Thread 0x405e2950 (LWP 7464)):
#0  0x00002b463e54f5cb in read () from /lib/libpthread.so.0
#1  0x0000000000481ad8 in mono_handle_native_sigsegv (
     signal=<value optimized out>, ctx=<value optimized out>)
     at mini-exceptions.c:1480
#2  <signal handler called>
#3  0x00002b463ea12095 in raise () from /lib/libc.so.6
#4  0x00002b463ea13af0 in abort () from /lib/libc.so.6
#5  0x00002b463decdd97 in g_assertion_message () from /usr/lib/ 
libglib-2.0.so.0
#6  0x0000000000530d3d in mono_reflection_lookup_dynamic_token (
     image=0x2aaaab68f000, token=<value optimized out>, valid_token=1,
     handle_class=0x405e1290, context=0x0) at reflection.c:10510
#7  0x00000000004c1aa7 in mono_lookup_dynamic_token (image=0x1d19,  
token=7464,
     context=0x0) at class.c:6225
#8  0x000000000044dda2 in mono_method_to_ir (cfg=0x2aaaac017ba0,
     method=0xd1fd90, start_bblock=0x2aaaac02ab98,  
end_bblock=0x2aaaac02ac98,
     return_var=0x0, dont_inline=0x2aaaac00bd60, inline_args=0x0,
     inline_offset=0, is_virtual_call=0) at method-to-ir.c:7147
#9  0x000000000041d7b3 in mini_method_compile (method=0xd1fd90,  
opts=55667199,
     domain=0x2aaaab64fe00, run_cctors=<value optimized out>,
     compile_aot=<value optimized out>, parts=0) at mini.c:3196
#10 0x000000000041ee6a in mono_jit_compile_method (method=0xd1fd90)
     at mini.c:3812
#11 0x00000000004881cf in mono_magic_trampoline (regs=0x405e1a08,
     code=0x419a0dc8 "A\203<FE><FF>t\020I\213<FD>I\213<F6>I\213E",  
m=0xd1fd90,
     tramp=<value optimized out>) at mini-trampolines.c:292
#12 0x0000000041b93168 in ?? ()
#13 0x0000000000ba00f0 in ?? ()
#14 0x0000000041ba3f58 in ?? ()
#15 0x00002aaaab6cd860 in ?? ()
#16 0x00002aaaab61b000 in ?? ()
#17 0x0000000000000014 in ?? ()
#18 0x00002aaaab61b000 in ?? ()
#19 0x00000000405e1ab0 in ?? ()
#20 0x000000004199972e in ?? ()
#21 0x00002aaaab6476a8 in ?? ()
#22 0x0000000000000200 in ?? ()
#23 0x0000000000927778 in ?? ()
#24 0x00002aaaab6476a8 in ?? ()
#25 0x0000000000000000 in ?? ()


More information about the Mono-devel-list mailing list