Esa Ilari Vuokko wrote:

The other one is the various concurrency tests that fail.  The machine
in which I run these is P4 with hyperthreading, and in my experience
hyperthreading does bring out threading-related bugs that won't appear
on normal single core machines.


I have fixed a few things that were affecting these tests, and disabled some tests that were inappropriate. I'm left with

   conc014(ghci,threaded1,threaded2)
   conc015(ghci,threaded1)
   conc017(ghci,threaded1,threaded2)

these all fail because in the threaded RTS on Windows, threadDelay is not interruptible like it is on Unix. I do intend to fix this (but not for 6.6), so I should probably mark these as expected failures.

Now, the worrying this is I'm left with some tests that do this:

conc007.exe: getMBlocks: VirtualAlloc MEM_COMMIT failed: The parameter is 
incorrect.

(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?

Cheers,
        Simon

   conc012(threaded2)
Exception (stack overflow) in a thread.  This actually plain crashes.

   conc014(normal,opt,optasm,prof,profasm,ghci,threaded1,threaded2)
   conc015(normal,opt,optasm,prof,profasm,ghci,threaded1,threaded2)
   conc017(normal,opt,optasm,prof,profasm,ghci,threaded1,threaded2)
Async exceptions. These crash in diffrent ways, depending on WAY.

   conc023(normal,ghci,threaded1,threaded2)
QSemN. This one corrupts heap somehow and crashes in diffrent ways -
I have seen various crashes from panics to just read/write out of
heap.
   conc053(threaded1,threaded2)
QSemN+stm

   conc037(threaded1,threaded2)
   conc038(threaded1,threaded2)
These just have ffi import Windows doesn't have - sleep.  Is adding
CPP, and conditionally importing windows.h/Sleep a good way to fix
them?

   conc056(threaded1,threaded2)


The async exception and QSemN problems are somewhat beyond me to debug,
if everyone else is busy, I'll try to debug those but I'd appreciate if
someone more experienced would look into them.  I've been running some of
the exception failures in debug mode and using various RTS flags and
reading the code, but I can't spot anything wrong in the code.

Let me know if I can help somehow.

Best regards,
--Esa

_______________________________________________
Cvs-ghc mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to