slekamlOh sorry I mistook this chan for the chan of the people who took the ocaml mooc
Other hint : I have a periodic (debug) task which prints dots :
let rec loop () = Lwt_io.printf "." ;%lwt Lwt_unix.sleep 0.1 ;%lwt loop ()
As the FLUSH blocks, this loop may block or not (same executable launched a couple of times : once it prints dots repeatedly, but FLUSH is blocked, once it does not print dots and FLUSH is also blocked).
Lwt_bytes.writewould have to hang, emptying the internal
Lwt_iochannel buffer. I suggest to either narrow the case as much as you can, by deleting huge chunks of code from a second copy of your project, or to put lwt as a sibling project of yours into a dune workspace and instrument
Lwt_iowith prints to get a better idea of what is going on
@aantron Thank you for your reply (I wasn't sure this deserved an issue :) )
I'll follow your advice (and also try some other hacks that came to my mind).
For the moment, the bug has disappeared (also I am pretty sure I have not recompiled, only changed the environment - IP, dual screen). So it seems non-deterministic.
master: ocsigen/lwt#704. it affected Lwt programs that called
fork, on glibc > 2.24 (not sure exactly which version of glibc introduced the problem). if you used opam pin --dev-repo, you are likely not using exactly lwt 4.3.0. to be sure about which commit you are using, do a normal
git clone, check
git log, and then do
opam pin add lwt .