[Gc] Re: GC issue in mono 0.31

Nikolai Zhubr s001 at hotbox.ru
Wed May 5 17:03:25 PDT 2004


Hello Hans,

You are right probably that there are actually two separate
problems (I was lucky enough to hit both).

Returning to dynamic linking issue, attached is the output
with GC_add_roots_inner arguments included + /proc/<mono>/maps.
(Some addresses have probably changed somewhat, so it might not
exactly match previously posted nm output)
-- 
Best regards,
 Nikolai Zhubr

Wednesday, 05 May, 2004, 23:35:52, you wrote:

> [I added the gc at linux.hpl.hp.com list, since this may be of interest to others
> there.]

> I have a plausible explanation for the Linux 2.6.5 failure.  I encountered
> a similar problem on a 2.6 Itanium machine here.  The problem is that the
> incremental collector write protects an internal GC data structure, which
> the thread-stopping signal handler tries to write.  Unfortunately SIGSEGV
> is blocked in that handler.  This problem appears to be fairly old, but
> 2.6 kernels seem to schedule things differently, so that the probability of
> hitting it goes from approximately zero to approximately one.

> I'll release my current snapshot as 6.3alpha6 later today, so that we can
> verify this.

> However, this problem occurs only with incremental GC enabled, which is
> rare, and almost certainly not the case for Mono.  The symptoms are also
> quite different from the Mono dynamic linking failure.  It still looks to
> me like the Mono gc is picking up the wrong _end definition.  And it would
> be good to track that down by looking at the GC_add_roots_inner call.

> Hans

>> -----Original Message-----
>> From: Nikolai Zhubr [mailto:s001 at hotbox.ru]
>> Sent: Wednesday, May 05, 2004 9:06 AM
>> To: Boehm, Hans; mono-gc-list at lists.ximian.com
>> Subject: Re: GC issue in mono 0.31
>> 
>> 
>> Hans,
>> My previous post appeared to be somewhat inexact.
>> The latest results are:
>> 
>> * gctest works on 2.4.20 kernel and fails on 2.6.5 one,
>>  doesn't matter if linked statically or dynamically;
>> 
>> * mono runtime fails on 2.4.20 and 2.6.5 when linked
>>  dynamically, but works on both kernels when linked
>>  statically.
>> 
>> I think this is a tolerable workaround for me now,
>> however still I can provide whatever information
>> developers might need in order to fix the issue.
>> -- 
>> Best regards,
>>  Nikolai Zhubr
>> 
-------------- next part --------------
GC_add_roots_inner(0x080497b0, 0x40184d00,...)
limit = 0x0807d12c, current_p = 0x0807cf34, GC_stackbottom = 0xbffff9ac;
***Static roots:
From 0x80497b0 to 0x40184d00 
Total size: 940815696

***Heap sections:
Total heap size: 65536
Section 0 from 0x806d000 to 0x807d000 0/16 blacklisted

***Free blocks:
Free list 16 (Total size 65536):
	0x806d000 size 65536 not black listed
Total of 65536 bytes on free list

***Blocks in use:
(kind(0=ptrfree,1=normal,2=unc.,3=stubborn):size_in_bytes, #_marks_set)

blocks = 0, bytes = 0

***Finalization statistics:
0 finalization table entries; 0 disappearing links
0 objects are eligible for immediate finalization
-------------- next part --------------
08048000-08049000 r-xp 00000000 07:00 14698      /mnt/lin_disk/BUILD/mono-0.31/mono/mini/.libs/mono
08049000-0804a000 rw-p 00000000 07:00 14698      /mnt/lin_disk/BUILD/mono-0.31/mono/mini/.libs/mono
0804a000-0807d000 rwxp 00000000 00:00 0 
40000000-40016000 r-xp 00000000 03:03 288767     /lib/ld-2.2.2.so
40016000-40017000 rw-p 00015000 03:03 288767     /lib/ld-2.2.2.so
40017000-40018000 rw-p 00000000 00:00 0 
40018000-40154000 r-xp 00000000 07:00 14690      /mnt/lin_disk/BUILD/mono-0.31/mono/mini/.libs/libmono.so.0.0.0
40154000-40177000 rw-p 0013b000 07:00 14690      /mnt/lin_disk/BUILD/mono-0.31/mono/mini/.libs/libmono.so.0.0.0
40177000-40185000 rw-p 00000000 00:00 0 
40185000-40186000 r--p 00000000 03:03 128298     /usr/lib/locale/en_US/LC_IDENTIFICATION
40186000-40187000 r--p 00000000 03:03 128299     /usr/lib/locale/en_US/LC_MEASUREMENT
40187000-40188000 r--p 00000000 03:03 128302     /usr/lib/locale/en_US/LC_TELEPHONE
40188000-40189000 r--p 00000000 03:03 128297     /usr/lib/locale/en_US/LC_ADDRESS
40189000-4018a000 r--p 00000000 03:03 128300     /usr/lib/locale/en_US/LC_NAME
4018a000-4018b000 r--p 00000000 03:03 128301     /usr/lib/locale/en_US/LC_PAPER
4018b000-4018c000 r--p 00000000 03:03 64211      /usr/lib/locale/en_US/LC_MESSAGES/SYS_LC_MESSAGES
4018c000-4018d000 r--p 00000000 03:03 144339     /usr/lib/locale/en_US/LC_MONETARY
40191000-40195000 r-xp 00000000 03:03 96587      /usr/lib/libgthread-2.0.so.0.0.6
40195000-40196000 rw-p 00003000 03:03 96587      /usr/lib/libgthread-2.0.so.0.0.6
40196000-40199000 r-xp 00000000 03:03 96437      /usr/lib/libgmodule-2.0.so.0.0.6
40199000-4019a000 rw-p 00002000 03:03 96437      /usr/lib/libgmodule-2.0.so.0.0.6
4019a000-4019d000 r-xp 00000000 03:03 288780     /lib/libdl-2.2.2.so
4019d000-4019e000 rw-p 00002000 03:03 288780     /lib/libdl-2.2.2.so
4019e000-40203000 r-xp 00000000 03:03 96435      /usr/lib/libglib-2.0.so.0.0.6
40203000-40205000 rw-p 00064000 03:03 96435      /usr/lib/libglib-2.0.so.0.0.6
40205000-40218000 r-xp 00000000 03:03 288785     /lib/libnsl-2.2.2.so
40218000-4021a000 rw-p 00012000 03:03 288785     /lib/libnsl-2.2.2.so
4021a000-4021c000 rw-p 00000000 00:00 0 
4021c000-40229000 r-xp 00000000 03:03 96388      /lib/i686/libpthread-0.9.so
40229000-40231000 rw-p 0000c000 03:03 96388      /lib/i686/libpthread-0.9.so
40231000-40232000 rw-p 00000000 00:00 0 
40232000-40255000 r-xp 00000000 03:03 96386      /lib/i686/libm-2.2.2.so
40255000-40256000 rw-p 00022000 03:03 96386      /lib/i686/libm-2.2.2.so
40256000-4025d000 r-xp 00000000 03:03 288816     /lib/librt-2.2.2.so
4025d000-4025e000 rw-p 00006000 03:03 288816     /lib/librt-2.2.2.so
4025e000-40268000 rw-p 00000000 00:00 0 
40268000-4038e000 r-xp 00000000 03:03 96384      /lib/i686/libc-2.2.2.so
4038e000-40394000 rw-p 00125000 03:03 96384      /lib/i686/libc-2.2.2.so
40394000-40398000 rw-p 00000000 00:00 0 
40398000-4039f000 r-xp 00000000 03:03 256552     /home/testgcc/gcc-3.3.1/lib/libgcc_s.so.1
4039f000-403a1000 rw-p 00006000 03:03 256552     /home/testgcc/gcc-3.3.1/lib/libgcc_s.so.1
403a1000-403a2000 rw-p 00000000 00:00 0 
403a2000-403a8000 r--p 00000000 03:03 32141      /usr/lib/locale/en_US/LC_COLLATE
403a8000-403a9000 r--p 00000000 03:03 128303     /usr/lib/locale/en_US/LC_TIME
403a9000-403aa000 r--p 00000000 03:03 48163      /usr/lib/locale/en_US/LC_NUMERIC
403aa000-403c5000 r--p 00000000 03:03 80240      /usr/lib/locale/en_US/LC_CTYPE
403c5000-403c7000 rw-p 00000000 00:00 0 
bfffb000-c0000000 rwxp ffffc000 00:00 0 
ffffe000-fffff000 ---p 00000000 00:00 0 


More information about the Gc mailing list