Etienne Millon

Results 159 comments of Etienne Millon

ah I spoke a bit too quickly there are other processes stuck in some `Lwt_preemptive` code.

OK so I have a workaround: adding the following line in `test-returning-errno-lwt-preemptive/test_returning_errno.ml` makes the deadlock go away :tada: ```ocaml let () = OUnitRunnerProcesses.unix_fork := Lwt_unix.fork ``` (Alternatively, using ounit2-lwt instead...

Yes, I think it's something like that at work. We'd have to inspect the linking commands to be sure. This is what the `Lwt_unix.fork` docs say: > `fork ()` does...

The remaining question I guess is do we consider that this fix is enough or do we need to investigate more about why it worked before?

OK, I'll keep the :male_detective: hat for a bit.

Found it! The command that runs the test binaries actually pass `-runner sequential`: https://github.com/ocamllabs/ocaml-ctypes/blob/57f069897b36f784ff0296c40f726e3baf5d8a1d/Makefile.tests#L1395 This is confirmed by execsnoop, and removing it makes some lwt-preemptive tests hang. So a more...

Hi. I'm seeing some test hang in the CI, I think it's just a matter of putting `-runner sequential` in all tests.

Hi, I worked on that to bring the port to completion. I pushed my branch to https://github.com/emillon/ocaml-ctypes/tree/dune-port-2022-04 My litmus test has been that ocaml-ci should work on the fork. Here's...

FTR I solved this in cryptosense/pkcs11 by adding an abstraction that adds a finalizer on the parent object that keeps the children objects alive, you can find it [here](https://github.com/cryptosense/pkcs11/blob/b12c9778923c9ff1a353643e4f3e27486bb6a70f/src/ctypes_helpers.ml#L19-L45).

I'm not very familiar with capnproto, but before doing that we'll probably need an implementation of [NoiseSocket](https://github.com/noisesocket/spec) which is comparable to TLS (Noise only deals with what happens after the...