[GH-ISSUE #77] stress: eintr, fifo and unix tests fail instead of UNSUP on nfs and msdos #71

Closed
opened 2026-11-03 22:03:43 -07:00 by gitea-mirror · 1 comment
Owner

Originally created by @raynorpat on GitHub (Oct 20, 2026).
Original GitHub issue: https://github.com/RhapsodiOS/RhapsodiOS/issues/77

First all-category runs of the suite on NFS and msdos (combined retest of ffs-perf f68d4802c). Each fails 3 of 3:

  • misc eintr reports flock-child-failed on nfs and msdos, where flock returns EOPNOTSUPP.
  • misc fifo reports mkfifo: EINVAL on msdos, which has no fifos.
  • net unix times out on msdos. It has no socket nodes, so the child's connect fails and the parent blocks in accept.

These are filesystem limits, not bugs: like the existing flock/fcntl, link and rename cases, they should end as UNSUP with the exact errno (st_unsup), and the child's failure must not leave the parent blocked.

Originally created by @raynorpat on GitHub (Oct 20, 2026). Original GitHub issue: https://github.com/RhapsodiOS/RhapsodiOS/issues/77 First all-category runs of the suite on NFS and msdos (combined retest of ffs-perf f68d4802c). Each fails 3 of 3: - `misc eintr` reports `flock-child-failed` on nfs and msdos, where `flock` returns EOPNOTSUPP. - `misc fifo` reports `mkfifo: EINVAL` on msdos, which has no fifos. - `net unix` times out on msdos. It has no socket nodes, so the child's connect fails and the parent blocks in accept. These are filesystem limits, not bugs: like the existing flock/fcntl, link and rename cases, they should end as UNSUP with the exact errno (`st_unsup`), and the child's failure must not leave the parent blocked.
Author
Owner

@raynorpat commented on GitHub (Oct 20, 2026):

Fixed by 4610ecd7f, merged into ffs-perf in a9fbc781a. No kernel change.

  • misc eintr runs the same probe_flock as misc flock, so flock: EOPNOTSUPP makes it UNSUP.
  • probe_fifo also accepts EINVAL, which is what msdosfs mkfifo returns.
  • net unix gets a probe (unix_probe): it binds, listens and connects a path socket under -d. ENOTSOCK, EOPNOTSUPP or ENOSYS make the test UNSUP. msdosfs makes the node a regular file, so connect gets ENOTSOCK (uipc_usrreq.c :478).
  • t_unix's parent now connects before it accepts and forks, so a failed connect is a FAIL, not a parent blocked in accept.
  • ENOTSOCK was added to the errno names; the README lists the new UNSUP cases.

Verified on the combined kernel (cksum 1504968375), seed 75, --cats "misc net":

Test nfs msdos ufs
misc eintr FAIL → UNSUP flock: EOPNOTSUPP FAIL → UNSUP flock: EOPNOTSUPP PASS
misc fifo PASS FAIL → UNSUP mkfifo: EINVAL PASS
net unix PASS FAIL (timeout) → UNSUP connect: ENOTSOCK PASS

No other result changed. msdos fsck is clean, and make check-misc and check-net pass.

<!-- gh-comment-id:6303109553 --> @raynorpat commented on GitHub (Oct 20, 2026): Fixed by 4610ecd7f, merged into ffs-perf in a9fbc781a. No kernel change. - `misc eintr` runs the same `probe_flock` as `misc flock`, so `flock: EOPNOTSUPP` makes it UNSUP. - `probe_fifo` also accepts EINVAL, which is what msdosfs `mkfifo` returns. - `net unix` gets a probe (`unix_probe`): it binds, listens and connects a path socket under `-d`. ENOTSOCK, EOPNOTSUPP or ENOSYS make the test UNSUP. msdosfs makes the node a regular file, so connect gets ENOTSOCK (`uipc_usrreq.c` :478). - `t_unix`'s parent now connects before it accepts and forks, so a failed connect is a FAIL, not a parent blocked in accept. - ENOTSOCK was added to the errno names; the README lists the new UNSUP cases. **Verified** on the combined kernel (cksum 1504968375), seed 75, `--cats "misc net"`: | Test | nfs | msdos | ufs | |---|---|---|---| | misc eintr | FAIL → UNSUP flock: EOPNOTSUPP | FAIL → UNSUP flock: EOPNOTSUPP | PASS | | misc fifo | PASS | FAIL → UNSUP mkfifo: EINVAL | PASS | | net unix | PASS | FAIL (timeout) → UNSUP connect: ENOTSOCK | PASS | No other result changed. msdos fsck is clean, and `make check-misc` and `check-net` pass.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
github-starred/RhapsodiOS#71
No description provided.