Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ocaml5-issue] Assertion failure on live words in GC test #470

Open
jmid opened this issue Aug 27, 2024 · 2 comments
Open

[ocaml5-issue] Assertion failure on live words in GC test #470

jmid opened this issue Aug 27, 2024 · 2 comments
Labels
ocaml5-issue A potential issue in the OCaml5 compiler/runtime

Comments

@jmid
Copy link
Collaborator

jmid commented Aug 27, 2024

The new Gc test in #469 triggered an assertion failure in Linux debug 5.3.0+trunk:
https://github.com/ocaml-multicore/multicoretests/actions/runs/10581716289/job/29319700079?pr=469

random seed: 369983017
generated error fail pass / total     time test name

[ ]    0    0    0    0 / 1000     0.0s STM Gc test sequential
[ ]    0    0    0    0 / 1000     0.0s STM Gc test sequential (generating)
[ ]  728    0    0  728 / 1000    61.9s STM Gc test sequential
[✓] 1000    0    0 1000 / 1000   104.3s STM Gc test sequential

[00] file runtime/shared_heap.c; line 1392 ### Assertion failed: local->stats.pool_live_words == pool_stats.live
File "src/gc/dune", line 4, characters 7-16:
4 |  (name stm_tests)
           ^^^^^^^^^
(cd _build/default/src/gc && ./stm_tests.exe --verbose)
Command got signal ILL.
[ ]    0    0    0    0 / 1000     0.0s STM Gc test parallel
@jmid jmid added the ocaml5-issue A potential issue in the OCaml5 compiler/runtime label Aug 27, 2024
@jmid jmid mentioned this issue Aug 27, 2024
@jmid
Copy link
Collaborator Author

jmid commented Aug 28, 2024

This one is easily reproducible.
I've commented out the sequential test and can trigger the assertion failure on every run, regardless of the seed:

$ OCAMLRUNPARAM="s=4096,v=0,V=1" dune exec src/gc/stm_tests.exe --profile=debug-runtime -- -v
random seed: 494408706
generated error fail pass / total     time test name
[ ]   41    0    0   41 / 1000     7.1s STM Gc test parallel[00] file runtime/shared_heap.c; line 1392 ### Assertion failed: local->stats.pool_live_words == pool_stats.live
Illegal instruction (core dumped)
$ OCAMLRUNPARAM="s=4096,v=0,V=1" dune exec src/gc/stm_tests.exe --profile=debug-runtime -- -v
random seed: 97187661
generated error fail pass / total     time test name
[ ]   16    0    0   16 / 1000     2.6s STM Gc test parallel[02] file runtime/shared_heap.c; line 1392 ### Assertion failed: local->stats.pool_live_words == pool_stats.live
Illegal instruction (core dumped)
$ OCAMLRUNPARAM="s=4096,v=0,V=1" dune exec src/gc/stm_tests.exe --profile=debug-runtime -- -v
random seed: 330070200
generated error fail pass / total     time test name
[ ]    5    0    0    5 / 1000     1.1s STM Gc test parallel[00] file runtime/shared_heap.c; line 1392 ### Assertion failed: local->stats.pool_live_words == pool_stats.live
Illegal instruction (core dumped)

@jmid
Copy link
Collaborator Author

jmid commented Sep 4, 2024

This is known upstream as a sporadic failure ocaml/ocaml#13090.
I've shared a standalone reproducer on that issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ocaml5-issue A potential issue in the OCaml5 compiler/runtime
Projects
None yet
Development

No branches or pull requests

1 participant