adinapoli / threads-supervisor

Simple, IO-based Haskell library for Erlang-inspired thread supervisors
MIT License
29 stars 4 forks source link

threads-supervisor-1.0.3.0 test suite failure #6

Closed peti closed 8 years ago

peti commented 9 years ago

The test suite for that package timed out after 2 hours of inactivity. I suppose that's an error? The complete build log is at http://hydra.cryp.to/build/1162530/log/raw.

adinapoli commented 9 years ago

That's very interesting indeed, thanks for the report! Unfortunately from the logs I cannot see which of the tests is getting deadlocked, any idea how we could access such information?

peti commented 9 years ago

Those builds run in a temporarily created chroot() environment that's destroyed afterwards. All I have is the log.

Is it possible that the tests depend on Internet access or something like that?

adinapoli commented 9 years ago

I have checked and no, no internet access is required, it's a pretty standard tasty + QC stack (using MonadicIO properties). Are you getting this consistently or intermittently? One first step might be to trying isolate which tests are timing out. I have been checking the project with TravisCI for a while now and I cannot remember on the top of my mind any failure.

The only thing I can think of is that some of those tests are quite heavy, as they creates bogus delays to ensure all the interleaves completes. Each test is repeated 10 times by quickcheck. Is it even possible the CI machine you are using is running those tests slow enough to cause the timeout to kick in?

peti commented 9 years ago

The machine building those packages has 8 cores plus 32 GByte RAM. I'm sure it can be busy sometimes, but I doubt it would be so busy that it would take 2 hours to run that test suite. The failures happen only occasionally. When I built the package manually a minute ago it succeeded fine (in less than 30 seconds).

adinapoli commented 9 years ago

Fair enough - yes, that's quite a beastly machine. The fact the failures are occasional makes me believe this is actually a genuine concurrency bug, which the high number of cores of your CI server is revealing!

I guess the next step is trying to identify which of those tests is causing the deadlock, perhaps trying to play with timeouts and fail with a meaningful message if we have any kind of deadlock. If in the meantime you find a way to put your hands on a more detailed server log documenting which tests in timing out I guess that would be of great help :wink:

adinapoli commented 8 years ago

@peti I have got a green build using stack & travis on version 1.0.4.0:

https://travis-ci.org/adinapoli/threads-supervisor/builds/85092724

I have released it on Hackage. Are you willing to try if you have any joy?

peti commented 8 years ago

The package is building happily in Nix (http://hydra.cryp.to/job/nixpkgs/haskell-updates/haskellPackages.threads-supervisor.x86_64-linux), including the test suite. I'll let you know if I run into errors again. Thank you for your efforts!

adinapoli commented 8 years ago

Thanks for taking time to write the bug report! Please let me know if you stumble into this dodgy behaviour again!