Chris00 / ocaml-csv

CSV library for OCaml
Other
136 stars 22 forks source link

Race condition in parallel builds #34

Open rwmjones opened 3 years ago

rwmjones commented 3 years ago

I see this from time to time. It's not very repeatable but it seems to happen on machines with more but slower cores:

File "lwt/dune", line 9, characters 0-150:
 9 | (rule
10 |  (targets csv_lwt.ml)
11 |  (deps    ../src/csv.pp.ml ../src/csv_memory.ml ../config/pp.exe)
12 |  (action (chdir %{workspace_root} (run config/pp.exe))))
Error: Rule failed to generate the following targets:
- lwt/csv_lwt.ml

Here's an example failure with full log on an aarch64 machine: https://koji.fedoraproject.org/koji/taskinfo?taskID=76860771

The unsatisfactory workaround is to use dune build -j 1

rwmjones commented 3 years ago

I should add that I have seen this both with upstream git and with the released 2.4 tarball.

Chris00 commented 4 days ago

Would you mind to do a PR?

rwmjones commented 16 hours ago

At the moment I can't even build it:

File "eio/dune", line 6, characters 20-28:
6 |  (libraries   bytes eio_main csv)
                        ^^^^^^^^
Error: Library "eio_main" not found.
-> required by library "csv-eio" in _build/default/eio
-> required by _build/default/META.csv-eio
-> required by _build/install/default/lib/csv-eio/META
-> required by _build/default/csv-eio.install
-> required by alias install
-> required by alias default

It seems like "eio" is supposed to be optional, but for some reason that isn't working. Dune is a weird build system that I don't understand, so I didn't get any further.

Chris00 commented 16 hours ago

@SGrondin ?