-
Notifications
You must be signed in to change notification settings - Fork 72
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
data-race/rare crash with with IO #751
Comments
The fact that it's racing with a read by the GC suggests these tsan reports are both false positives. I would expect it's perfectly reasonable for one domain to be examining the block's fields during marking in a major slice while another one is updating the count. @OlivierNicole might know for sure. Does it actually crash, or just give warnings from tsan? (on my machine, I only see the warnings) |
I'm trying to reproduce the crash but have only gotten it once on the bigger program from which I extracted this testcase
|
Here's a simpler way to trigger the tsan error (no IO, works on Linux and Posix backends): open Eio.Std
let run_worker () =
Switch.run ~name:"run_worker" @@ fun sw ->
while true do
Fiber.fork ~sw (fun () ->
for _ = 0 to 1000 do
ignore (String.make 10000 'a')
done
);
done
let () =
Eio_main.run @@ fun env ->
Eio.Switch.run @@ fun sw ->
let domain_mgr = Eio.Stdenv.domain_mgr env in
for _ = 1 to 7 do
Fiber.fork_daemon ~sw (fun () -> Eio.Domain_manager.run domain_mgr run_worker)
done;
for _ = 1 to 10000 do
Fiber.fork ~sw (fun () ->
for _ = 1 to 1000 do
ignore (Sys.opaque_identity ())
done
)
done |
TSan warns that setting `statx_works` races with users of it. This isn't really a problem, because we always set it to the same value, but it's distracting when looking for other bugs. Reported by Anil Madhavapeddy in ocaml-multicore#751.
TSan warns that setting `statx_works` races with users of it. This isn't really a problem, because we always set it to the same value, but it's distracting when looking for other bugs. Reported by Anil Madhavapeddy in ocaml-multicore#751.
TSan warns that setting `statx_works` races with users of it. This isn't really a problem, because we always set it to the same value, but it's distracting when looking for other bugs. Reported by Anil Madhavapeddy in ocaml-multicore#751.
Still trying to track down exactly what is causing this, but it triggers now with a small testcase in 5.2.0 and 5.3.0+trunk on x86_64 with the following program:
built with:
It triggers the following data race reliably on Linux:
It happens with both the uring and posix backend
The text was updated successfully, but these errors were encountered: