[M3devel] PPC_LINUX hangs in m3_strtod? and an assertion failure

Jay K jay.krell at cornell.edu
Fri Jul 24 16:11:41 CEST 2009


Right..so I had a big blatant bug..but the next thing to try is feeding this string to the convert functions through a "safe" path and see if it hangs.. and address the control-c issue maybe (if it is process kill though, fix is to just run less code..)
 
>> Breakpoint 1, m3_strtod (s00=0x7feb9ef0 "4.9406564584124654e-324")

(note that hotmail ruined the pragmas due to the angle brackets..)
 
and I'll have to find what the parameter to m3_dtoawas.
 
Btw, the bug was, quake:
 
if defined("FOO")
  if equal("FOO", "BAR")
    something 
  else
    something else 
 
instead of

if defined("FOO")
  if equal(FOO, "BAR")
 
 - Jay

----------------------------------------
> CC: m3devel at elegosoft.com
> From: hosking at cs.purdue.edu
> To: jay.krell at cornell.edu
> Subject: Re: [M3devel] PPC_LINUX hangs in m3_strtod? and an assertion failure
> Date: Fri, 24 Jul 2009 10:06:52 -0400
>
> Yeah, I don't think control C works reasonably for all points in GC.
> Perhaps just eliminate the signal handler? Not sure.
>
>
>
> On 24 Jul 2009, at 06:44, Jay K wrote:
>
>>
>> I'm seeing wierd stuff.
>>
>> On PPC_LINUX.
>>
>> Compiling some files hangs.
>> Such as M3Front.m3.
>>
>> It is actually looping forever in
>>
>> Breakpoint 1, m3_strtod (s00=0x7feb9ef0 "4.9406564584124654e-324")
>>
>>
>> which, you know, other than feeding it bad data, or corrupting
>> its stack when it calls out to our lock/unlock, we can't mess up.
>>
>>
>> I can watch what strings it gets on other systems and/or make
>> a standalone case that hangs.
>>
>>
>> While investigating this I hit control-c on a cm3 and hit:
>>
>>
>> new source -> compiling SchedulerPosix.i3 (hung here)
>>
>> ***
>> *** runtime error:
>> *** failed.
>> *** file "..\src\runtime\common\RTCollector.m3", line 1087
>> ***
>> Aborted
>>
>>
>>
>> PROCEDURE CleanBetween (h, he: RefHeader; clean: BOOLEAN) =
>> BEGIN
>> WHILE h < he DO
>>
>> line 1087
>>
>>
>> Maybe we don't deal with control-c at arbitrary points??
>>
>>
>> I was able to reproduce this assertion failure twice in a row..
>> though it moved to line 1089 the second time.
>>
>>
>>
>> PROCEDURE CleanBetween (h, he: RefHeader; clean: BOOLEAN) =
>> BEGIN
>> WHILE h < he DO
>>
>>
>> IF h.gray THEN
>> line 1089
>>
>>
>> I verified that the hang compiling SchedulerPosix.i3 is also related
>> to floating point conversion.
>> This time in m3_dtoa.
>>
>>
>> I will look further.
>> Maybe my config file changes..but seems odd..
>>
>> - Jay
>>
>>
>> - Jay
>>
>>
>


More information about the M3devel mailing list