Scary Windows issues

Simon Marlow simonmarhaskell at gmail.com
Thu Aug 31 11:32:47 EDT 2006


Esa Ilari Vuokko wrote:
> Simon Marlow wrote:
> 
> [snip: fixed and analysed test failures]
> Thanks!
> 
> 
>>conc007.exe: getMBlocks: VirtualAlloc MEM_COMMIT failed: The parameter
>>is incorrect.
> 
> 
> Iiik!  This means that address given to VirtualAlloc is either not
> reserved yet, or that size is too big (ie the block-to-be-committed
> isn't inside one VirtualAlloc MEM_RESERVE block.)
> 
> 
>>(I improved the error message).  With a given RTS build it is always the
>>same tests that fail in this way, but if I tweak the RTS or use a
>>debugging RTS, the error goes away or moves to a different test.  I
>>haven't managed to reproduce it with a debugging RTS at all, which is
>>frustrating.  It appears to have nothing to do with -threaded, though -
>>these failures happen with the normal way too.
> 
> 
>>conc007 & conc012 seem to trigger it more than other tests.
>>
>>Esa - do you see this?  Any ideas?
> 
> 
> I don't see random crashes.  I ran fast-mode and full concurrency-dir tests
> several times.
> 
> But...this made me check the MBlock allocator once more...there appears
> to be a bug in my code.  Attached is a patch with fix.  Although I've hard
> time guessing how this bug could cause the failure - it's like something was
> freeing memory.  Well, hope it's this bug...in which case sorry for the
> trouble.
> 
> (The patch doesn't cause additional failures for fast, but it doesn't
> fix any for me, either.)

It doesn't fix the failures I'm seeing.  conc007, conc012 and conc030 all fail 
for me at the moment, although the compiler itself seems pretty stable.

Should your patch be committed or not?

> Failures I'm seeing in concurrency-dir, on machine with two cores (real, not
> HT), but not using testsuite THREADS as the machine had extra load:
>    conc023(normal,profasm,ghci,threaded2)
>      This is still random, diffrent WAYS fail on diffrent runs.

I haven't seen conc023 fail, except the ghci way:

conc023: failed to create OS thread: Not enough storage is available to process 
this command.

which is reasonable.  I'm not running on an HT or MT machine though, so the 
other conc023 failures might only show up with there are multiple hardware threads.

>    conc037(threaded2)

what happened here?

>    conc039(threaded1)

I believe this one fails occasionally due to non-fatal reasons (performGC_: 
interrupted).  I should fix the test really.

>    conc058(normal,opt,optasm,prof,profasm)
>      "I'm Interruptible"

conc058 shouldn't be failing now.

Cheers,
	Simon


More information about the Cvs-ghc mailing list