[M3devel] @M3paranoidgc always crashes
Olaf Wagner
wagner at elegosoft.com
Sat Aug 22 00:36:24 CEST 2009
Quoting Jay K <jay.krell at cornell.edu>:
> Fix is in head.
OK. I merged runtime and thread from the trunk head. I couldn't
compile it though. Some imports were missing. Strange. With the
added imports, the tests seem to run fine.
Thanks,
Olaf
> - Jay
>
>> Date: Fri, 21 Aug 2009 21:36:52 +0200
>> From: wagner at elegosoft.com
>> To: hosking at cs.purdue.edu; jay.krell at cornell.edu
>> CC: m3devel at elegosoft.com
>> Subject: Re: [M3devel] @M3paranoidgc always crashes
>>
>> Quoting Tony Hosking <hosking at cs.purdue.edu>:
>>
>> > Jay may have fixed this for now.
>>
>> It seems to be still broken, at least in the release branch. I'm currently
>> adding some tests. Running a simple test program with @M3paranoidgc
>> does not terminate:
>>
>> % ../src/p2/p213/FreeBSD4/pgm
>> `Hello world' and `Hello world' are equal.
>> The length of the first is 11
>> Extracting four chars from position 3 yields --lo w--
>> Salut = Hello
>>
>> done.
>> luthien [~/work/cm3/m3-sys/m3tests/src] wagner
>> % ../src/p2/p213/FreeBSD4/pgm @M3paranoidgc
>>
>>
>> ***
>> *** runtime error:
>> *** Segmentation violation - possible attempt to dereference NIL^C
>>
>> It only prints half of the message and eats lots of CPU afterwards.
>>
>> I'll open a ticket for it and won't build release packages until it is
>> fixed.
>>
>> Ticket is #1063.
>>
>> Olaf
>>
>> >
>> > On 20 Aug 2009, at 11:10, Olaf Wagner wrote:
>> >
>> >> Quoting Tony Hosking <hosking at cs.purdue.edu>:
>> >>
>> >>> Indeed, the use of paranoidgc itself now seems to be broken
>> >>> (independently of any other bug you might be trying to track down by
>> >>> invoking paranoidgc).
>> >>> This is a serious bug, that should be rectified *before* any release.
>> >>> Without it, we cannot easily diagnose GC bugs in the field. I have
>> >>> little to no time to devote to this right now, but it does look like
>> >>> the recent changes to threading initialisation has broken things. I
>> >>> remember being very careful about initialization of threads and heap
>> >>> components of the run-time when working on the original native
>> >>> threads. In particular, the ability to invoke ThreadF.GetActivation
>> >>> was allowed before ThreadF.Init had been called, because
>> >>> ThreadF.InitActivations was able to be invoked on-demand independently
>> >>> of ThreadF.Init. This independence now seems to have been eliminated
>> >>> so as to eliminate a run-time check in GetActivation.
>> >>
>> >> Jay, could you open a ticket for that, too?
>> >>
>> >> And we also need to add tests for running with various @M3 options...
>> >>
>> >> Olaf
>> >>
>> >>>
>> >>> On 20 Aug 2009, at 05:55, Jay K wrote:
>> >>>
>> >>>>
>> >>>> Verified on SOLgnu and AMD64_LINUX.
>> >>>> Probably related to initialization order changes that let user
>> >>>> threads work again.
>> >>>> Probably should just use untraced?
>> >>>>
>> >>>>
>> >>>>
>> >>>> % gdb --args ./cm3 @M3paranoidgc
>> >>>> GNU gdb 6.4.90-debian
>> >>>> Copyright (C) 2006 Free Software Foundation, Inc.
>> >>>> GDB is free software, covered by the GNU General Public License,
>> >>>> and you are
>> >>>> welcome to change it and/or distribute copies of it under
>> >>>> certain conditions.
>> >>>> Type "show copying" to see the conditions.
>> >>>> There is absolutely no warranty for GDB. Type "show warranty"
>> >>>> for details.
>> >>>> This GDB was configured as "x86_64-linux-gnu"...Using host
>> >>>> libthread_db library
>> >>>> "/lib/libthread_db.so.1".
>> >>>> (gdb) run
>> >>>> Starting program: /home/jkrell/cm3/bin/cm3 @M3paranoidgc
>> >>>> [Thread debugging using libthread_db enabled]
>> >>>> [New Thread 47899659458256 (LWP 29607)]
>> >>>> Program received signal SIGSEGV, Segmentation fault.
>> >>>> [Switching to Thread 47899659458256 (LWP 29607)]
>> >>>> 0x00000000006934c5 in RTAllocator__GetTracedObj
>> >>>> (M3_Eic7CK_def=Cannot access mem
>> >>>> ory at address 0x800028d97718
>> >>>> )
>> >>>> at ../src/runtime/common/RTAllocator.m3:221
>> >>>> 221 INC(thread.inCritical);
>> >>>> (gdb) bt
>> >>>> #0 0x00000000006934c5 in RTAllocator__GetTracedObj
>> >>>> (M3_Eic7CK_def=Cannot access
>> >>>> memory at address 0x800028d97718
>> >>>> )
>> >>>> at ../src/runtime/common/RTAllocator.m3:221
>> >>>> #1 0x0000000000692e1f in RTHooks__AllocateTracedObj
>> >>>> (M3_AJWxb1_defn=Cannot acce
>> >>>> ss memory at address 0x800028d97788
>> >>>> )
>> >>>> at ../src/runtime/common/RTAllocator.m3:120
>> >>>> #2 0x000000000069b3ae in RTCollector__InstallSanityCheck ()
>> >>>> at ../src/runtime/common/RTCollector.m3:1637
>> >>>> #3 0x00000000006a1747 in RTHeapRep__Init ()
>> >>>> at ../src/runtime/common/RTCollector.m3:2769
>> >>>> #4 0x00000000006a2a1d in RTLinker__InitRuntime
>> >>>> (M3_AcxOUs_p_argc=Cannot access
>> >>>> memory at address 0x800028d97858
>> >>>> )
>> >>>> at ../src/runtime/common/RTLinker.m3:58
>> >>>> #5 0x00000000004160bc in main (argc=Cannot access memory at
>> >>>> address 0x800028d97
>> >>>> 8a8
>> >>>> ) at _m3main.mc:3
>> >>>> (gdb)
>> --
>> Olaf Wagner -- elego Software Solutions GmbH
>> Gustav-Meyer-Allee 25 / Gebäude 12, 13355 Berlin, Germany
>> phone: +49 30 23 45 86 96 mobile: +49 177 2345 869 fax: +49 30 23 45 86 95
>> http://www.elegosoft.com | Geschäftsführer: Olaf Wagner | Sitz: Berlin
>> Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214194
>>
>
--
Olaf Wagner -- elego Software Solutions GmbH
Gustav-Meyer-Allee 25 / Gebäude 12, 13355 Berlin, Germany
phone: +49 30 23 45 86 96 mobile: +49 177 2345 869 fax: +49 30 23 45 86 95
http://www.elegosoft.com | Geschäftsführer: Olaf Wagner | Sitz: Berlin
Handelregister: Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214194
More information about the M3devel
mailing list