On Tue, Aug 4, 2026 at 4:06 PM Mark Johnston <[email protected]> wrote: > > On Tue, Aug 04, 2026 at 01:33:40PM -0600, Alan Somers wrote: > > Try this patch. It works for me. I don't have an ATF regression test > > to go with it, though: > > This fixes the test failures, but I'm still seeing some weirdness when > running tests in parallel: one test is doing something which exhausts > all of the free vnodes in the kernel, and that causes a bunch of other > tests to time out. At some point the system recovers and carries on > normally. I'm not sure what the offending test is, but maybe there is a > file descriptor leak somewhere in the change, or some problem with the > compat implementation? > > > diff --git a/lib/libc/gen/fts.c b/lib/libc/gen/fts.c > > index 204340e4b87f..3dd9b6432a2c 100644 > > --- a/lib/libc/gen/fts.c > > +++ b/lib/libc/gen/fts.c > > @@ -489,8 +489,7 @@ fts_read(FTS *sp) > > * FTS_STOP or the fts_info field of the node. > > */ > > if (sp->fts_child != NULL) { > > - if (fts_safe_changedir(sp, p, > > - p->fts_dirfd, p->fts_name)) { > > + if (fts_safe_changedir(sp, p, -1, p->fts_name)) { > > p->fts_errno = errno; > > p->fts_flags |= FTS_DONTCHDIR; > > for (p = sp->fts_child; p != NULL; > > > > > > On Tue, Aug 4, 2026 at 1:00 PM Alan Somers <[email protected]> wrote: > > > > > > On Tue, Aug 4, 2026 at 12:58 PM Mark Johnston <[email protected]> wrote: > > > > > > > > On Mon, Aug 03, 2026 at 07:13:08PM +0000, Alan Somers wrote: > > > > > The branch main has been updated by asomers: > > > > > > > > > > URL: > > > > > https://cgit.FreeBSD.org/src/commit/?id=4bd01d6ae01632501b63438b8d9a401db9744a78 > > > > > > > > > > commit 4bd01d6ae01632501b63438b8d9a401db9744a78 > > > > > Author: Jitendra Bhati <[email protected]> > > > > > AuthorDate: 2026-06-12 17:07:55 +0000 > > > > > Commit: Alan Somers <[email protected]> > > > > > CommitDate: 2026-08-03 19:12:28 +0000 > > > > > > > > > > fts: refactor to use fd-relative operations internally > > > > > > > > > > Replace all _open() calls with _openat() in __fts_open(), > > > > > fts_read(), > > > > > and fts_children(). Replace statfs() with _fstatfs(). > > > > > > > > > > Add fts_dirfd to struct _ftsent, set to the file descriptor of the > > > > > parent directory. Callers can use openat(ent->fts_dirfd, > > > > > ent->fts_name, > > > > > ...) to access files safely without relying on fts_accpath, which > > > > > enables programs in capability mode to open the files described by > > > > > _ftsent. > > > > > > > > > > This is a preparatory change for fts_openat() which will allow > > > > > callers > > > > > to provide a pre-opened directory fd, enabling fts(3) traversal > > > > > inside > > > > > Capsicum capability mode. > > > > > > > > > > Mirror all fts_open() changes to fts_open_b(). > > > > > > > > > > As a result of expanding _ftsend, publish new ELF symbol versions > > > > > for > > > > > fts_openat and related functions. > > > > > > > > > > Sponsored by: Google LLC (GSoC 2026) > > > > > Reviewed by: asomers > > > > > Pull Request: https://github.com/freebsd/freebsd-src/pull/2303 > > > > > > > > Quite a few regression tests seem to be failing after this commit, e.g., > > > > some of the makefs tests: > > > > https://ci.freebsd.org/job/FreeBSD-main-amd64-test/29201/ > > > > > > I'm testing a fix now. I should have something ready for you soon.
The fix is committed now, as 74bd6fb1eb02 . Sorry for the trouble.
