[Mono-bugs] [Bug 77787][Wis] Changed - Mono fails on Itanium-machine
bugzilla-daemon at bugzilla.ximian.com
bugzilla-daemon at bugzilla.ximian.com
Sat May 13 06:12:32 EDT 2006
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 yury at serdyuk.botik.ru.
http://bugzilla.ximian.com/show_bug.cgi?id=77787
--- shadow/77787 2006-05-12 10:11:06.000000000 -0400
+++ shadow/77787.tmp.11967 2006-05-13 06:12:32.000000000 -0400
@@ -1148,6 +1148,324 @@
(gdb)
------- Additional Comments From vargaz at gmail.com 2006-05-12 10:11 -------
Could you check the value of GC_is_initialized ?
+
+------- Additional Comments From Yury at serdyuk.botik.ru 2006-05-13 06:12 -------
+From the one hand:
+
+(gdb) r /home/users/gramuser2/m-1.1.14/lib/mono/1.0/mcs.exe
+Starting program: /home/users/gramuser2/m-1.1.14/bin/mono
+/home/users/gramuser2/m-1.1.14/lib/mono/1.0/mcs.exe
+[Thread debugging using libthread_db enabled]
+[New Thread 2305843009219573216 (LWP 31896)]
+[Switching to Thread 2305843009219573216 (LWP 31896)]
+main (argc=2, argv=0x6000000fff86f698) at main.c:6
+6 return mono_main (argc, argv);
+(gdb) r
+The program being debugged has been started already.
+Start it from the beginning? (y or n) y
+
+Starting program: /home/users/gramuser2/m-1.1.14/bin/mono
+/home/users/gramuser2/m-1.1.14/lib/mono/1.0/mcs.exe
+[Thread debugging using libthread_db enabled]
+[New Thread 2305843009219573216 (LWP 1219)]
+
+** ERROR **: file gc.c: line 137 (object_register_finalizer):
+assertion failed: (GC_base (obj) == (char*)obj - offset)
+aborting...
+
+Program received signal SIGABRT, Aborted.
+[Switching to Thread 2305843009219573216 (LWP 1219)]
+<signal handler called>
+(gdb) display GC_is_initialized
+1: GC_is_initialized = 1
+(gdb) b mono_context_init
+Breakpoint 2 at 0x40000000001550e0: file appdomain.c, line 179.
+(gdb) r
+The program being debugged has been started already.
+Start it from the beginning? (y or n) y
+
+Starting program: /home/users/gramuser2/m-1.1.14/bin/mono
+/home/users/gramuser2/m-1.1.14/lib/mono/1.0/mcs.exe
+[Thread debugging using libthread_db enabled]
+[New Thread 2305843009219573216 (LWP 7419)]
+[Switching to Thread 2305843009219573216 (LWP 7419)]
+
+Breakpoint 2, mono_context_init (domain=0x60000000000a0e30) at
+appdomain.c:179
+179 class = mono_class_from_name (mono_defaults.corlib,
+"System.Runtime.Remoting.Contexts", "Context");
+1: GC_is_initialized = 1
+(gdb) b object_register_finalizer
+Breakpoint 3 at 0x400000000010bc00: file gc.c, line 137.
+(gdb) r
+The program being debugged has been started already.
+Start it from the beginning? (y or n) y
+
+Starting program: /home/users/gramuser2/m-1.1.14/bin/mono
+/home/users/gramuser2/m-1.1.14/lib/mono/1.0/mcs.exe
+[Thread debugging using libthread_db enabled]
+[New Thread 2305843009219573216 (LWP 11341)]
+[Switching to Thread 2305843009219573216 (LWP 11341)]
+
+Breakpoint 3, object_register_finalizer (obj=0x60000000000a0cc0,
+ callback=@0x400000000035e760: 0x400000000010bea0 <run_finalize>)
+at gc.c:137
+137 g_assert (GC_base (obj) == (char*)obj - offset);
+1: GC_is_initialized = 1
+(gdb) b GC_base
+Breakpoint 4 at 0x4000000000209e90: file misc.c, line 395.
+(gdb) r
+The program being debugged has been started already.
+Start it from the beginning? (y or n) y
+
+Starting program: /home/users/gramuser2/m-1.1.14/bin/mono
+/home/users/gramuser2/m-1.1.14/lib/mono/1.0/mcs.exe
+[Thread debugging using libthread_db enabled]
+[New Thread 2305843009219573216 (LWP 21515)]
+[Switching to Thread 2305843009219573216 (LWP 21515)]
+
+Breakpoint 4, GC_base (p=<value optimized out>) at misc.c:395
+395 r = (word)p;
+1: GC_is_initialized = 0
+(gdb)
+
+but from the other hand :
+
+Breakpoint 1, mono_context_init (domain=0x60000000000a0e30) at
+appdomain.c:179
+179 class = mono_class_from_name (mono_defaults.corlib,
+"System.Runtime.Remoting.Contexts", "Context");
+1: GC_is_initialized = 1
+(gdb) b object_register_finalizer
+Breakpoint 2 at 0x400000000010bc00: file gc.c, line 137.
+(gdb) r
+The program being debugged has been started already.
+Start it from the beginning? (y or n) y
+
+Starting program: /home/users/gramuser2/m-1.1.14/bin/mono
+/home/users/gramuser2/m-1.1.14/lib/mono/1.0/mcs.exe
+[Thread debugging using libthread_db enabled]
+[New Thread 2305843009219573216 (LWP 6752)]
+[Switching to Thread 2305843009219573216 (LWP 6752)]
+
+Breakpoint 2, object_register_finalizer (obj=0x60000000000a0cc0,
+ callback=@0x400000000035e760: 0x400000000010bea0 <run_finalize>)
+at gc.c:137
+137 g_assert (GC_base (obj) == (char*)obj - offset);
+1: GC_is_initialized = 1
+(gdb) l
+132 #if HAVE_BOEHM_GC
+133 guint offset = 0;
+134
+135 #ifndef GC_DEBUG
+136 /* This assertion is not valid when GC_DEBUG is defined */
+137 g_assert (GC_base (obj) == (char*)obj - offset);
+138 #endif
+139
+140 if (mono_domain_is_unloading (obj->vtable->domain) &&
+(callback != NULL))
+141 /*
+(gdb) l
+142 * Can't register finalizers in a dying
+appdomain, since they
+143 * could be invoked after the appdomain has
+been unloaded.
+144 */
+145 return;
+146
+147 mono_domain_lock (obj->vtable->domain);
+148
+149 if (callback)
+150 g_hash_table_insert
+(obj->vtable->domain->finalizable_objects_hash, obj,
+151 obj);
+(gdb) n
+140 if (mono_domain_is_unloading (obj->vtable->domain) &&
+(callback != NULL))
+1: GC_is_initialized = 1
+(gdb) n
+147 mono_domain_lock (obj->vtable->domain);
+1: GC_is_initialized = 1
+(gdb) n
+149 if (callback)
+1: GC_is_initialized = 1
+(gdb) n
+150 g_hash_table_insert
+(obj->vtable->domain->finalizable_objects_hash, obj,
+1: GC_is_initialized = 1
+(gdb) n
+153 g_hash_table_remove
+(obj->vtable->domain->finalizable_objects_hash, obj);
+1: GC_is_initialized = 1
+(gdb) n
+155 mono_domain_unlock (obj->vtable->domain);
+1: GC_is_initialized = 1
+(gdb) n
+157 GC_REGISTER_FINALIZER_NO_ORDER ((char*)obj - offset,
+callback, GUINT_TO_POINTER (offset), NULL, NULL);
+1: GC_is_initialized = 1
+(gdb) n
+159 }
+1: GC_is_initialized = 1
+(gdb) n
+mono_object_new_alloc_specific (vtable=0x6000000000039e70) at
+object.c:2402
+2402 mono_profiler_allocation (o, vtable->klass);
+1: GC_is_initialized = 1
+(gdb) n
+2400 mono_object_register_finalizer (o);
+1: GC_is_initialized = 1
+(gdb) n
+2402 mono_profiler_allocation (o, vtable->klass);
+1: GC_is_initialized = 1
+(gdb) n
+2404 }
+1: GC_is_initialized = 1
+(gdb) n
+2402 mono_profiler_allocation (o, vtable->klass);
+1: GC_is_initialized = 1
+(gdb) n
+2404 }
+1: GC_is_initialized = 1
+(gdb) n
+mono_object_new_specific (vtable=0x6000000000039e70) at object.c:2383
+2383 return mono_object_new_alloc_specific (vtable);
+1: GC_is_initialized = 1
+(gdb) n
+2384 }
+1: GC_is_initialized = 1
+(gdb) n
+mono_thread_attach (domain=0x0) at threads.c:412
+412 thread = (MonoThread *)mono_object_new (domain,
+1: GC_is_initialized = 1
+(gdb) n
+415 thread_handle = GetCurrentThread ();
+1: GC_is_initialized = 1
+(gdb) n
+416 g_assert (thread_handle);
+1: GC_is_initialized = 1
+(gdb) n
+415 thread_handle = GetCurrentThread ();
+1: GC_is_initialized = 1
+(gdb) n
+431 MONO_OBJECT_SETREF (thread, synch_lock,
+mono_object_new (domain, mono_defaults.object_class));
+1: GC_is_initialized = 1
+(gdb) n
+416 g_assert (thread_handle);
+1: GC_is_initialized = 1
+(gdb) n
+418 tid=GetCurrentThreadId ();
+1: GC_is_initialized = 1
+(gdb) n
+429 thread->handle=thread_handle;
+1: GC_is_initialized = 1
+(gdb) n
+418 tid=GetCurrentThreadId ();
+1: GC_is_initialized = 1
+(gdb) n
+430 thread->tid=tid;
+1: GC_is_initialized = 1
+(gdb) n
+431 MONO_OBJECT_SETREF (thread, synch_lock,
+mono_object_new (domain, mono_defaults.object_class));
+1: GC_is_initialized = 1
+(gdb) n
+429 thread->handle=thread_handle;
+1: GC_is_initialized = 1
+(gdb) n
+430 thread->tid=tid;
+1: GC_is_initialized = 1
+(gdb) n
+431 MONO_OBJECT_SETREF (thread, synch_lock,
+mono_object_new (domain, mono_defaults.object_class));
+1: GC_is_initialized = 1
+(gdb) n
+435 handle_store(thread);
+1: GC_is_initialized = 1
+(gdb) n
+439 SET_CURRENT_OBJECT (thread);
+1: GC_is_initialized = 1
+(gdb) n
+440 mono_domain_set (domain, TRUE);
+1: GC_is_initialized = 1
+(gdb) n
+439 SET_CURRENT_OBJECT (thread);
+1: GC_is_initialized = 1
+(gdb) n
+440 mono_domain_set (domain, TRUE);
+1: GC_is_initialized = 1
+(gdb) n
+442 thread_adjust_static_data (thread);
+1: GC_is_initialized = 1
+(gdb) n
+445 mono_thread_attach_cb (tid, &tid);
+1: GC_is_initialized = 1
+(gdb) n
+444 if (mono_thread_attach_cb) {
+1: GC_is_initialized = 1
+(gdb) n
+445 mono_thread_attach_cb (tid, &tid);
+1: GC_is_initialized = 1
+(gdb) n
+449 }
+1: GC_is_initialized = 1
+(gdb) n
+mono_runtime_init (domain=0x60000000000a0e30,
+ start_cb=@0x400000000035c480: 0x40000000002612e0
+<mono_thread_start_cb>,
+ attach_cb=@0x400000000035e7d0: 0x400000000026c810
+<mono_thread_attach_cb>)
+ at appdomain.c:112
+112 mono_thread_attach (domain);
+1: GC_is_initialized = 1
+(gdb) n
+113 mono_context_init (domain);
+1: GC_is_initialized = 1
+(gdb) n
+
+Breakpoint 1, mono_context_init (domain=0x60000000000a0e30) at
+appdomain.c:179
+179 class = mono_class_from_name (mono_defaults.corlib,
+"System.Runtime.Remoting.Contexts", "Context");
+1: GC_is_initialized = 1
+(gdb) n
+175 {
+1: GC_is_initialized = 1
+(gdb)
+179 class = mono_class_from_name (mono_defaults.corlib,
+"System.Runtime.Remoting.Contexts", "Context");
+1: GC_is_initialized = 1
+(gdb) n
+180 context = (MonoAppContext *) mono_object_new (domain,
+class);
+1: GC_is_initialized = 1
+(gdb) n
+179 class = mono_class_from_name (mono_defaults.corlib,
+"System.Runtime.Remoting.Contexts", "Context");
+1: GC_is_initialized = 1
+(gdb) n
+180 context = (MonoAppContext *) mono_object_new (domain,
+class);
+1: GC_is_initialized = 1
+(gdb) n
+
+Breakpoint 2, object_register_finalizer (obj=0x600000000011ef80,
+ callback=@0x400000000035e760: 0x400000000010bea0 <run_finalize>)
+at gc.c:137
+137 g_assert (GC_base (obj) == (char*)obj - offset);
+1: GC_is_initialized = 1
+(gdb) n
+
+** ERROR **: file gc.c: line 137 (object_register_finalizer):
+assertion failed: (GC_base (obj) == (char*)obj - offset)
+aborting...
+
+Program received signal SIGABRT, Aborted.
+<signal handler called>
+1: GC_is_initialized = 1
+(gdb)
+
More information about the mono-bugs
mailing list