Add a README section about the MRI stuck/crash behavior
This commit is contained in:
parent
1fd5575871
commit
739644e149
1 changed files with 26 additions and 1 deletions
25
README.md
25
README.md
|
@ -83,6 +83,31 @@ gem install mutant-rspec
|
|||
|
||||
The minitest integration is still in the works.
|
||||
|
||||
The Crash / Stuck Problem (MRI)
|
||||
-------------------------------
|
||||
|
||||
Mutations generated by mutant can cause MRI to enter VM states its not prepared for.
|
||||
All MRI versions above 1.9 are affected by this depending on your compiler flags, compiler version,
|
||||
and OS scheduling behavior.
|
||||
|
||||
This can have the following unintended effects:
|
||||
|
||||
* MRI crashes with a segfault. Mutant kills each mutation in a dedicated fork to isolate
|
||||
the mutations side effects when this fork terminates abnormally (segfault) mutant
|
||||
counts the mutation as killed.
|
||||
|
||||
* MRI crashes with a segfault and gets stuck when handling the segfault.
|
||||
Depending on the number of active kill jobs mutant might appear to continue normally untill
|
||||
all workers are stuck into this state when it begins to hang.
|
||||
Currently mutant must assume that your test suite simply not terminated yet as from the outside
|
||||
(parent process) the difference between a long running test and a stuck MRI is not observable.
|
||||
Its planned to implement a timeout enforced from the parent process, but ideally MRI simply gets fixed.
|
||||
|
||||
References:
|
||||
|
||||
* Mutant bug: https://github.com/mbj/mutant/issues/265
|
||||
* Upstream bug: https://bugs.ruby-lang.org/issues/10460
|
||||
|
||||
Examples
|
||||
--------
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue