Trouble with waitpid and Rust
Michael Neumann
mneumann at ntecs.de
Mon Jul 10 06:40:22 PDT 2017
Hi,
I am trying to port some Rust libraries to DragonFly, specifically the
[nix] crate to access UN*X APIs from Rust.
Some test cases randomly fail. Specifically one test case that uses
fork() and waitpid() is failing [2], where wait() returns ECHILD, i.e.
no child. When I execute the tests sequentially, everything is fine, but
when I run them in parallel, sometimes they hang.
I uploaded a gzipped binary to
https://leaf.dragonflybsd.org/~mneumann/test-nix.gz
To run it:
setenv RUST_BACKTRACE 1
# sequential
./test-nix --test-threads 1
# parallel
./test-nix --test-threads 10
# Run only certain test cases
./test-nix --test-threads 10 test_unistd
Any help appreciated.
Regards,
Michael
[nix]: https://github.com/nix-rust/nix
[2]: https://github.com/nix-rust/nix/blob/master/test/test_unistd.rs#L45
More information about the Kernel
mailing list