> Did you try it on the code I sent or did you use some other test case?
I tried your code. It's still possible that this is an application bug, of course (maybe in one of the dependencies, if not in your application). > Is there a test-suite in GHC that stresses the threaded runtime? Some of the tests in the test suite uses threaded runtime. Other than those not really. Ömer Harendra Kumar <harendra.ku...@gmail.com>, 3 Şub 2020 Pzt, 12:29 tarihinde şunu yazdı: > > Ok, I will file an issue. I just wanted to rule out any application level > issues first. Did you try it on the code I sent or did you use some other > test case? Is there a test-suite in GHC that stresses the threaded runtime? > > -harendra > > On Mon, 3 Feb 2020 at 14:09, Ömer Sinan Ağacan <omeraga...@gmail.com> wrote: >> >> In that case it'd be good to move the discussion to Gitlab. Could you file an >> issue? >> >> I was able to reproduce on GHC HEAD. With debug runtime I consistently get >> this >> assertion error: >> >> internal error: ASSERTION FAILED: file rts/Messages.c, line 95 >> >> (GHC version 8.11.0.20200201 for x86_64_unknown_linux) >> Please report this as a GHC bug: >> https://www.haskell.org/ghc/reportabug >> >> In non-debug runtime it works fine maybe half of the time, in others I get a >> panic in the GC. >> >> Ömer >> >> Harendra Kumar <harendra.ku...@gmail.com>, 3 Şub 2020 Pzt, 10:01 >> tarihinde şunu yazdı: >> > >> > Unfortunately, it is present in 8.8.2 as well. >> > >> > On Mon, 3 Feb 2020 at 11:22, Ömer Sinan Ağacan <omeraga...@gmail.com> >> > wrote: >> >> >> >> You should try with 8.8.2 which fixes a bug in the compacting GC (#17088). >> >> >> >> When debugging it's a good idea to use the latest minor release of your >> >> GHC >> >> version (8.8.2 in your case), as minor releases fix bugs and usually do >> >> not >> >> introduce new ones as they don't ship new features. >> >> >> >> If the problem still exists, unless you're interested in GHC hacking I >> >> think >> >> most productive use of the time would be to make the reproduer smaller, >> >> and >> >> collect as many data as possible, like which flags trigger/hide the bug. >> >> >> >> Some of the things you could check: >> >> >> >> - Build your program with `-dcore-lint -dstg-lint -dcmm-lint` and see if >> >> it >> >> builds. >> >> - Build your program with `-debug` and run it, see if it crahes. >> >> - Build your program with `-debug` and run it with `+RTS -DS` and see if >> >> the >> >> error message changes. >> >> >> >> But really you should try with 8.8.2 as first thing. It's possible that >> >> this is >> >> another manifestation of #17088. >> >> >> >> Ömer >> >> >> >> Harendra Kumar <harendra.ku...@gmail.com>, 3 Şub 2020 Pzt, 01:26 >> >> tarihinde şunu yazdı: >> >> > >> >> > Hi, >> >> > >> >> > While running a test-suite for the streaming library streamly I am >> >> > encountering a crash which seems to happen at random places at >> >> > different times. The common messages are: >> >> > >> >> > * Segmentation fault: 11 >> >> > * internal error: scavenge_mark_stack: unimplemented/strange closure >> >> > type 24792696 @ 0x4200a623e0 >> >> > * internal error: update_fwd: unknown/strange object 223743520 >> >> > >> >> > and several other such messages. Prima facie this looks like the memory >> >> > is getting corrupted/scribbled somehow. My first suspicion was that >> >> > this could be a problem in the streamly library code. But I have >> >> > stripped down the code to bare minimum and there is no C FFI code or no >> >> > poking to memory pointers. >> >> > >> >> > My next suspicion was the hspec/quickcheck testing code that is being >> >> > used in this test. I checked the hspec code to ensure that there is no >> >> > C code/pointer poking in any of the code involved. But no luck there as >> >> > well, still looking to further strip down that code. >> >> > >> >> > My suspicion now is moving more towards the GHC RTS. This issue only >> >> > shows when the following conditions are met: >> >> > >> >> > * hspec "parallel" combinator is used to run tests in parallel >> >> > * streamly concurrent code is being tested which can create many threads >> >> > * The GHC heap size is restricted to a small size ~32MB using "-M32M" >> >> > rts option. >> >> > * It is consistently seen with GHC 8.6.5 as well as GHC 8.8.1 >> >> > >> >> > It never occurs when the heap size is not restricted. I have seen >> >> > random crashes before as well with a "IO manager die" message, when >> >> > using concurrent networking IO with streamly. Though earlier it was not >> >> > easily reproducible, I stopped chasing it. But now it looks like that >> >> > issue might also be a manifestation of the same underlying problem. >> >> > >> >> > My guess is it could be something in the RTS concurrency/threading >> >> > related code. Let me know if the symptoms ring a bell or if you can >> >> > point to something specific based on the symptoms. Also, what are the >> >> > usual tools/methods/debugging aids/flags to debug such issues in GHC? >> >> > If not a GHC issue what are the possible ways in which such problem can >> >> > be induced by application code? >> >> > >> >> > Meanwhile, I am also trying to simplify the reproducing code further to >> >> > remove other factors as much as possible. The current code is at >> >> > https://github.com/composewell/streamly on the ghc-segfault branch. Run >> >> > "$ while true; do cabal run properties || break; done" in the shell and >> >> > if you are lucky it may crash soon. The test code is in "test/Prop.hs" >> >> > - here >> >> > https://github.com/composewell/streamly/blob/ghc-segfault/test/Prop.hs . >> >> > >> >> > -harendra >> >> > _______________________________________________ >> >> > ghc-devs mailing list >> >> > ghc-devs@haskell.org >> >> > http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs _______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs