[Mono-bugs] [Bug 76756][Nor] New - Runtime crash with assemblies having same basename (a.exe and a.dll, where a.exe links against a.dll)

bugzilla-daemon at bugzilla.ximian.com bugzilla-daemon at bugzilla.ximian.com
Fri Nov 18 18:19:58 EST 2005

Please do not reply to this email- if you want to comment on the bug, go to the
URL shown below and enter your comments there.

Changed by abockover at novell.com.


--- shadow/76756	2005-11-18 18:19:58.000000000 -0500
+++ shadow/76756.tmp.17425	2005-11-18 18:19:58.000000000 -0500
@@ -0,0 +1,67 @@
+Bug#: 76756
+Product: Mono: Runtime
+Version: 1.1
+OS: other
+OS Details: SUSE 10.0
+Status: NEW   
+Priority: Normal
+Component: JIT
+AssignedTo: lupus at ximian.com                            
+ReportedBy: abockover at novell.com               
+QAContact: mono-bugs at ximian.com
+TargetMilestone: ---
+Summary: Runtime crash with assemblies having same basename (a.exe and a.dll, where a.exe links against a.dll)
+If two assemblies have the same basename (a.exe and a.dll, a is the
+basename), and a.exe links against a.dll, the runtime will crash when a.exe
+instantiates a class in a.dll.
+Two things happen, depending on how the invoked class is assigned. 
+If the instantiation is assigned to a local variable (B b = new B()), the
+runtime will SIGSEGV with the following trace:
+Program received signal SIGSEGV, Segmentation fault.
+[Switching to Thread 1076079520 (LWP 30973)]
+mono_class_from_mono_type (type=0x98) at class.c:2970
+2970    class.c: No such file or directory.
+        in class.c
+(gdb) bt
+#0  mono_class_from_mono_type (type=0x98) at class.c:2970
+#1  0x0810ea91 in mono_compile_create_var (cfg=0x81f7650, type=0x98,
+    opcode=152) at mini.c:1581
+#2  0x0812b687 in mini_method_compile (method=0x81f6f90, opts=92555,
+    domain=0x21f00, run_cctors=152, compile_aot=152, parts=0) at mini.c:8506
+#3  0x0812c33b in mono_jit_compile_method_with_opt (
+    method=<value optimized out>, opt=<value optimized out>) at mini.c:9563
+#4  0x0812c6d3 in mono_jit_runtime_invoke (method=0x81f6f90, obj=0x0,
+    params=0xbffbd0a8, exc=0x0) at mini.c:9771
+#5  0x080cb402 in mono_runtime_exec_main (method=0x81f6f90, args=0x2ae10,
+    exc=0x0) at object.c:2039
+#6  0x080cdd2e in mono_runtime_run_main (method=0x81f6f90, argc=0,
+    argv=0xbffbd348, exc=0x0) at object.c:1897
+#7  0x0805d4c2 in mono_main (argc=1, argv=0xbffbd344) at driver.c:533
+#8  0x4012fea0 in __libc_start_main () from /lib/tls/libc.so.6
+#9  0x0805bf81 in _start () at start.S:119
+If the instantiation is not assigned (new B()), the runtime instead will
+exit with a warning:
+** (a.exe:31033): WARNING **: Missing method .ctor in assembly
+/home/aaron/Desktop/assembly-basename-bug/a.exe, type B
+** ERROR **: file mini.c: line 9575 (mono_jit_compile_method_inner): should
+not be reached
+I think this warning gives a clue... shouldn't it be looking for type B in
+a.dll, not a.exe?
+I found this bug today when I started to resume work on hal-sharp. My last
+commit was in mid/early July of this year. The library was "hal-sharp.dll"
+and I had a test program named "hal-sharp.exe". Whatever the latest mono
+was in July did not have this problem.

More information about the mono-bugs mailing list