A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/ocaml/ocaml/issues/11503 below:

Ephemeron test aborts · Issue #11503 · ocaml/ocaml · GitHub

I have been seeing an occasional crashing failure in Ephemeron tests in the multicoretests CI
which I am now able to reproduce locally on my x86_64 Thinkpad, running Linux 5.4.0-124-generic.

This run is particularly interesting as it fails already in the sequential tests (no parallelism torture required):

$ dune exec -- src/ephemeron/stm_tests.exe -v -s 89270100
### OCaml runtime: debug mode ###  
random seed: 89270100
generated error fail pass / total     time test name
[ ]    0    0    0    0 / 1000     0.0s STM Ephemeron test sequential (generating)[00] file runtime/weak.c; line 164 ### Assertion failed: !Is_block(child) || !is_unmarked(child)
Aborted (core dumped)

The backtrace is not as helpful as I had hoped:

Reading symbols from /home/jmi/software/multicoretests/_build/default/src/ephemeron/stm_tests.exe...
[New LWP 3401171]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `_build/default/src/ephemeron/stm_tests.exe -v -s 89270100'.
Program terminated with signal SIGABRT, Aborted.
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
50	../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) bt
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1  0x00007f10bcd37859 in __GI_abort () at abort.c:79
#2  0x000055ff9d10c710 in caml_failed_assert (expr=expr@entry=0x55ff9d121bd0 "!Is_block(child) || !is_unmarked(child)", file_os=file_os@entry=0x55ff9d121b28 "runtime/weak.c", line=line@entry=164) at runtime/misc.c:56
#3  0x000055ff9d1144b5 in caml_ephe_clean (v=139709591208488) at runtime/caml/shared_heap.h:75
#4  0x000055ff9d114505 in caml_ephe_clean (v=<optimized out>) at runtime/weak.c:172
#5  clean_field (e=<optimized out>, offset=<optimized out>) at runtime/weak.c:172
#6  0x0000000000000003 in ?? ()
#7  0x00007f10ac8e4228 in ?? ()
#8  0x0000000000000001 in ?? ()
#9  0x0000000000000001 in ?? ()
#10 0x0000000000000000 in ?? ()

The bottom stack frames look strange to me 🤔

I am able to trigger this issue with different kinds of tests (also parallel ones), but they all fail with an assert failure like the above.
This happens with both opam switches 5.0.0~alpha1 and 5.0.0+trunk (which uses the 5.0 branch AFAIU).
Unfortunately I've been unable to create a standalone repro test so far.

To (hopefully) recreate: 🤞

opam repo add alpha git+https://github.com/kit-ty-kate/opam-alpha-repository.git
opam update
opam switch create 5.0.0~alpha1
git clone git@github.com:jmid/multicoretests.git
cd multicoretests
git checkout ephemeron-crash
opam install qcheck ppx_deriving
dune exec -- src/ephemeron/stm_tests.exe -v -s 89270100

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4