[M3devel] p007 not terminating on NT386
Tony Hosking
hosking at cs.purdue.edu
Tue Sep 1 16:54:26 CEST 2009
On 1 Sep 2009, at 10:13, Jay K wrote:
>
> AutoFlushWr:
> on non-I386_OPENBSD, it passed in the test runs, but generally hit
> assertion failures in manual runs -- on LINUXLIBC6, NT386, and maybe
> others.
> on I386_OPENBSD: it hangs
>
>
> The code was a bit hard for me to verify the correctness of. I
> replaced it with an easy to understand version and the non-
> I386_OPENBSD problems went away. The I386_OPENBSD hang remains.
>
>
> In particular, AutoFlushWr layers a Wr over a Wr, but if the
> underlying Wr is buffered, it strives to not add an additional
> buffering layer. If the underlying Wr is not buffered, it does add
> buffering. All Wrs have a few public fields to implement buffering.
> AutoFlushWr copies these fields back and forth. I think it was a)
> optimizing which fields to copy based on knowing which fields the
> toplevel Wr modified when b) I think it was doing some computation
> them that it should not have, instead of just copying them. I just
> have it basically copy all the fields all the time. There are just a
> few.
OK, sounds like we all need to take a closer look at this code and
satisfy ourselves that it is now correct.
> Agreed, the I386_OPENBSD hang might be related.
> I think I might have to try out very old versions, like I'm doing
> (slowly!) for the formsedit crash.
> Maybe not, since the I386_OPENBSD hang is easy to reproduce and only
> involves two threads -- not too complicated.
This is particularly weird, since it is clear that the main thread is
trying to stop the other thread, but the other thread is not
responding. I wonder if signal delivery to waiting threads is broken
on OpenBSD?
> I think p007 also hangs on Cygwin, but it always has. I tried
> debugging it but Cygwin seemed like a mess. Granted, it hung with
> Cygwin whether or not I used pthreads or NT threads.
I have a feeling p007 is just buggy in itself -- it looks like there
is a serious race in there. So, in this case I think the test is
broken, not the platform. I'll try to clean it up.
> Recentness isn't particularly clear I think, since I don't think
> these platforms have ever had good test coverage. But I did think
> regular NT386 was ok here.
>
>
> Later,
> - Jay
>
>
> ________________________________
>> From: hosking at cs.purdue.edu
>> To: wagner at elegosoft.com
>> Date: Tue, 1 Sep 2009 09:51:23 -0400
>> CC: m3devel at elegosoft.com
>> Subject: Re: [M3devel] p007 not terminating on NT386
>>
>> These thread problems are relatively new (similar to Jay's problems
>> with AutoFlushWr...). Something quite bad must have happened
>> recently to cause them. I took a quick look at ThreadPThread.m3 but
>> didn't notice anything obviously wrong. Something else perhaps?
>>
>> Antony Hosking | Associate Professor | Computer Science | Purdue
>> University
>> 305 N. University Street | West Lafayette | IN 47907 | USA
>> Office +1 765 494 6001 | Mobile +1 765 427 5484
>>
>>
>>
>>
>> On 1 Sep 2009, at 08:56, Olaf Wagner wrote:
>>
>> It looks as if m3test p007 does not terminate any more on NT386.
>> This used to work. I just found this
>>
>> --- p007 --- a whole bunch of threads - does the memory grow ?
>>
>> cd ..\src\p0\p007 && cm3 -silent -DM3TESTS>NT386\stdout.build.raw
>> 2>NT386\stderr.build.raw
>>
>> running for more than 5 hours.
>>
>> The last successful run was
>> http://hudson.modula3.com:8080/view/NT386/job/cm3-test-m3tests-NT386/212/
>> .
>>
>> Olaf
>> --
>> 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