The logict-sequence test suite consistently freezes up on the last test when compiled with GHC 9.4.3. logict-sequence and its test suite don't do anything special with that GHC/base version as far as I can see, or anything particularly strange in general, so I'm pretty confident the problem lies elsewhere. My best guesses are hedgehog, tasty, and tasty-hedgehog. Has anyone else run into weird issues with any/all of these on GHC 9.4.3? David
In particular, I think tasty does some tricky concurrency. Have there been changes in that recently, either in GHC itself or in async, that might be responsible? On Wed, Nov 30, 2022, 5:33 PM David Feuer <david.feuer@gmail.com> wrote:
The logict-sequence test suite consistently freezes up on the last test when compiled with GHC 9.4.3. logict-sequence and its test suite don't do anything special with that GHC/base version as far as I can see, or anything particularly strange in general, so I'm pretty confident the problem lies elsewhere. My best guesses are hedgehog, tasty, and tasty-hedgehog. Has anyone else run into weird issues with any/all of these on GHC 9.4.3?
David
I had a test suite loop indefinitely with ghc 9.4.3 - see https://gitlab.haskell.org/ghc/ghc/-/issues/22416 - but to be honest I don't really understand what the code did that lead to the problem, so dont know how relevant it is for you. Doug On Wed, Nov 30, 2022 at 5:46 PM David Feuer <david.feuer@gmail.com> wrote:
In particular, I think tasty does some tricky concurrency. Have there been changes in that recently, either in GHC itself or in async, that might be responsible?
On Wed, Nov 30, 2022, 5:33 PM David Feuer <david.feuer@gmail.com> wrote:
The logict-sequence test suite consistently freezes up on the last test when compiled with GHC 9.4.3. logict-sequence and its test suite don't do anything special with that GHC/base version as far as I can see, or anything particularly strange in general, so I'm pretty confident the problem lies elsewhere. My best guesses are hedgehog, tasty, and tasty-hedgehog. Has anyone else run into weird issues with any/all of these on GHC 9.4.3?
David
_______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post.
I don't see anything about test suites freezing/looping in that ticket. Did you mean a different one? Note: it seems pretty clear that my test suite is *not* looping: when it freezes, the process doesn't burn CPU or memory. It seems there's a deadlock somewhere, but it's all *extremely* mysterious to me. Most mysteriously, only the last test case seems to lead to this problem, and it does so even when *dramatically* simplified in various ways (e.g., if I just `liftIO (print s)` instead of traversing with an arbitrary function, and then finish off with `3 === 3`). It would be easy to believe that the problem was in my Hedgehog test case generation code if not for the fact that it works reliably on all versions of GHC from 7.8 through 9.2! So either something is wrong with GHC 9.4 or using 9.4 is getting me a bad version of some dependency. On Wed, Nov 30, 2022 at 10:36 PM Doug Burke <dburke.gw@gmail.com> wrote:
I had a test suite loop indefinitely with ghc 9.4.3 - see https://gitlab.haskell.org/ghc/ghc/-/issues/22416 - but to be honest I don't really understand what the code did that lead to the problem, so dont know how relevant it is for you.
Doug
On Wed, Nov 30, 2022 at 5:46 PM David Feuer <david.feuer@gmail.com> wrote:
In particular, I think tasty does some tricky concurrency. Have there been changes in that recently, either in GHC itself or in async, that might be responsible?
On Wed, Nov 30, 2022, 5:33 PM David Feuer <david.feuer@gmail.com> wrote:
The logict-sequence test suite consistently freezes up on the last test when compiled with GHC 9.4.3. logict-sequence and its test suite don't do anything special with that GHC/base version as far as I can see, or anything particularly strange in general, so I'm pretty confident the problem lies elsewhere. My best guesses are hedgehog, tasty, and tasty-hedgehog. Has anyone else run into weird issues with any/all of these on GHC 9.4.3?
David
_______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post.
Sorry, mea culpa. I got confused - there was a test loop with 9.2 (which sounded a bit like your case, but it was in 9.2 and not 9.4) and an unrelated issue with 9.4 that was found at the same time and I got that mixed up Doug On Wed, Nov 30, 2022 at 11:15 PM David Feuer <david.feuer@gmail.com> wrote:
I don't see anything about test suites freezing/looping in that ticket. Did you mean a different one? Note: it seems pretty clear that my test suite is *not* looping: when it freezes, the process doesn't burn CPU or memory. It seems there's a deadlock somewhere, but it's all *extremely* mysterious to me. Most mysteriously, only the last test case seems to lead to this problem, and it does so even when *dramatically* simplified in various ways (e.g., if I just `liftIO (print s)` instead of traversing with an arbitrary function, and then finish off with `3 === 3`). It would be easy to believe that the problem was in my Hedgehog test case generation code if not for the fact that it works reliably on all versions of GHC from 7.8 through 9.2! So either something is wrong with GHC 9.4 or using 9.4 is getting me a bad version of some dependency.
On Wed, Nov 30, 2022 at 10:36 PM Doug Burke <dburke.gw@gmail.com> wrote:
I had a test suite loop indefinitely with ghc 9.4.3 - see https://gitlab.haskell.org/ghc/ghc/-/issues/22416 - but to be honest I don't really understand what the code did that lead to the problem, so dont know how relevant it is for you.
Doug
On Wed, Nov 30, 2022 at 5:46 PM David Feuer <david.feuer@gmail.com> wrote:
In particular, I think tasty does some tricky concurrency. Have there been changes in that recently, either in GHC itself or in async, that might be responsible?
On Wed, Nov 30, 2022, 5:33 PM David Feuer <david.feuer@gmail.com> wrote:
The logict-sequence test suite consistently freezes up on the last test when compiled with GHC 9.4.3. logict-sequence and its test suite don't do anything special with that GHC/base version as far as I can see, or anything particularly strange in general, so I'm pretty confident the problem lies elsewhere. My best guesses are hedgehog, tasty, and tasty-hedgehog. Has anyone else run into weird issues with any/all of these on GHC 9.4.3?
David
_______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post.
GHC 9.4.3 with -O2 is miscompiling the derived Show and Eq instances for SeqT in logict-sequence. main :: IO () main = print (pure 0 :: Seq Int) -- -O0, -O1: prints the Seq -- -O2: <<loop>> On top of that, both hedgehog and hspec fail to catch `<<loop>>`. main :: IO () main = defaultMain [ check $ property $ do let x = x :: Int -- obvious loop compiles to a thrown exception <<loop>> if x == x then pure () else pure () ] -- "thread blocked indefinitely in an STM transaction" -- meaning some thread is not getting cleaned up properly main :: IO () main = hspec $ do describe "work" $ do it "works" $ do let x = x :: Int -- obvious loop compiles to a thrown exception <<loop>> if x == x then pure () else pure () :: IO () --- hangs Cheers, Li-yao On 2022-11-30 10:33 PM, David Feuer wrote: The logict-sequence test suite consistently freezes up on the last test when compiled with GHC 9.4.3. logict-sequence and its test suite don't do anything special with that GHC/base version as far as I can see, or anything particularly strange in general, so I'm pretty confident the problem lies elsewhere. My best guesses are hedgehog, tasty, and tasty-hedgehog. Has anyone else run into weird issues with any/all of these on GHC 9.4.3? David _______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post.
Wow, that's ... interesting. Could this have to do with the way the constraints are written? Has there been some change in UndecidableInstances? I'll try simplifying the Eq, Ord, Show, etc. constraints manually and see if that fixes it. On Thu, Dec 1, 2022, 7:14 PM Li-yao Xia <lysxia@gmail.com> wrote:
GHC 9.4.3 with -O2 is miscompiling the derived Show and Eq instances for SeqT in logict-sequence.
main :: IO () main = print (pure 0 :: Seq Int) -- -O0, -O1: prints the Seq -- -O2: <<loop>>
On top of that, both hedgehog and hspec fail to catch `<<loop>>`.
main :: IO () main = defaultMain [ check $ property $ do let x = x :: Int -- obvious loop compiles to a thrown exception <<loop>> if x == x then pure () else pure () ] -- "thread blocked indefinitely in an STM transaction" -- meaning some thread is not getting cleaned up properly
main :: IO () main = hspec $ do describe "work" $ do it "works" $ do let x = x :: Int -- obvious loop compiles to a thrown exception <<loop>> if x == x then pure () else pure () :: IO () --- hangs
Cheers, Li-yao
On 2022-11-30 10:33 PM, David Feuer wrote:
The logict-sequence test suite consistently freezes up on the last test when compiled with GHC 9.4.3. logict-sequence and its test suite don't do anything special with that GHC/base version as far as I can see, or anything particularly strange in general, so I'm pretty confident the problem lies elsewhere. My best guesses are hedgehog, tasty, and tasty-hedgehog. Has anyone else run into weird issues with any/all of these on GHC 9.4.3?
David _______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to:http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post.
Thank you so much for figuring this out. I've filed a bug at https://gitlab.haskell.org/ghc/ghc/-/issues/22549 In the mean time, I'll adjust the upper bounds on Hackage and release a version of logict-sequence that hopefully won't have this issue. On Thu, Dec 1, 2022 at 7:14 PM Li-yao Xia <lysxia@gmail.com> wrote:
GHC 9.4.3 with -O2 is miscompiling the derived Show and Eq instances for SeqT in logict-sequence.
main :: IO () main = print (pure 0 :: Seq Int) -- -O0, -O1: prints the Seq -- -O2: <<loop>>
On top of that, both hedgehog and hspec fail to catch `<<loop>>`.
main :: IO () main = defaultMain [ check $ property $ do let x = x :: Int -- obvious loop compiles to a thrown exception <<loop>> if x == x then pure () else pure () ] -- "thread blocked indefinitely in an STM transaction" -- meaning some thread is not getting cleaned up properly
main :: IO () main = hspec $ do describe "work" $ do it "works" $ do let x = x :: Int -- obvious loop compiles to a thrown exception <<loop>> if x == x then pure () else pure () :: IO () --- hangs
Cheers, Li-yao
On 2022-11-30 10:33 PM, David Feuer wrote:
The logict-sequence test suite consistently freezes up on the last test when compiled with GHC 9.4.3. logict-sequence and its test suite don't do anything special with that GHC/base version as far as I can see, or anything particularly strange in general, so I'm pretty confident the problem lies elsewhere. My best guesses are hedgehog, tasty, and tasty-hedgehog. Has anyone else run into weird issues with any/all of these on GHC 9.4.3?
David _______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post.
participants (3)
-
David Feuer -
Doug Burke -
Li-yao Xia