You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We've observed an issue with Dynlink under the Cygwin and MinGW ports, which may cause segfaults, hangs, etc.
This has been tracked in ocaml-multicore/multicoretests#307. Here's a small reproducer:
Across 10 MinGW runs I observed the following behaviour (sorted). I've observed simiar under Cygwin.
Fatal error: exception Dynlink.Error (Dynlink.Cannot_open_dll Failure("input_value_from_block: bad object"))
Fatal error: exception Dynlink.Error (Dynlink.Cannot_open_dll Failure("input_value_from_block: bad object"))
Fatal error: exception Dynlink.Error (Dynlink.Cannot_open_dll Failure("input_value_from_block: bad object"))
Fatal error: exception Dynlink.Error (Dynlink.Cannot_open_dll Failure("not an OCaml plugin"))
Fatal error: exception Dynlink.Error (Dynlink.Cannot_open_dll Failure("not an OCaml plugin"))
Fatal error: exception Dynlink.Error (Dynlink.Cannot_open_dll Invalid_argument("Dynlink: Missing frametable for LibB"))
Fatal error: exception Dynlink.Error (Dynlink.Cannot_open_dll Invalid_argument("Dynlink: Missing frametable for LibB"))
Fatal error: exception Dynlink.Error (Dynlink.Cannot_open_dll Invalid_argument("Dynlink: Missing frametable for _shared_startup"))
Fatal error: exception Dynlink.Error (Dynlink.Cannot_open_dll Invalid_argument("Dynlink: Missing gc_roots for _shared_startup"))
Segmentation fault
This is an issue on trunk, 5.2.0~alpha1, 5.1.1, ...
I've since learned that this is a known FlexDLL issue: ocaml/flexdll#120
and that #11607 disabled a compiler test under Windows as a result.
I'm therefore opening this issue to help keep track.
(As usual) @dra27 has a draft fix: a first version adds a global lock around FlexDLL'ss list of loaded units.
I can confirm that it fixes the above reproducer.
Note: an earlier PR ocaml/flexdll#112 fixed races to FlexDLL's global error variables (which is orthogonal to the above AFAICS)
The text was updated successfully, but these errors were encountered:
We've observed an issue with
Dynlink
under the Cygwin and MinGW ports, which may cause segfaults, hangs, etc.This has been tracked in ocaml-multicore/multicoretests#307. Here's a small reproducer:
libB.ml
main.ml
steps to reproduce:
Across 10 MinGW runs I observed the following behaviour (sorted). I've observed simiar under Cygwin.
This is an issue on
trunk
,5.2.0~alpha1
,5.1.1
, ...I've since learned that this is a known FlexDLL issue: ocaml/flexdll#120
and that #11607 disabled a compiler test under Windows as a result.
I'm therefore opening this issue to help keep track.
(As usual) @dra27 has a draft fix: a first version adds a global lock around
FlexDLL
'ss list of loaded units.I can confirm that it fixes the above reproducer.
Note: an earlier PR ocaml/flexdll#112 fixed races to FlexDLL's global error variables (which is orthogonal to the above AFAICS)
The text was updated successfully, but these errors were encountered: