From: Stefan Sperling Subject: Re: sparc64 regress ulimit To: Christian Weisgerber , gameoftrees@openbsd.org Date: Sun, 22 Jan 2023 14:01:08 +0100 On Sat, Jan 21, 2023 at 07:15:56AM -0700, Tracey Emery wrote: > On Fri, Jan 20, 2023 at 11:17:49PM +0100, Stefan Sperling wrote: > > > > Please run the test with this patch applied. > > The 'got checkout' process should spin when it happens and you should > > be able to get its list of open files with fstat -p $PID > > > > diff /home/stsp/src/got > > commit - 7713cc5e4f5544e81909670d592e89526ed86c9b > > path + /home/stsp/src/got > > blob - 7e698531e6e75bd34bc4b2f0c280aded67f43de0 > > file + lib/error.c > > --- lib/error.c > > +++ lib/error.c > > @@ -254,6 +254,10 @@ got_error(int code) > > { > > size_t i; > > > > + if (code == GOT_ERR_PRIVSEP_NO_FD) { > > + fprintf(stderr, "%s: no more privsep fds; spinning...\n", __func__); > > + for (;;) sleep(1); > > + } > > for (i = 0; i < nitems(got_errors); i++) { > > if (code == got_errors[i].code) > > return &got_errors[i]; > > > > Huh! I had a bit of time to run the tests this morning. Afk for the rest > of the weekend. Have a good one. This is less than 32 open file descriptors, which suggests the problem is somewhere else. It could be that the process on other end of a pipe has crashed, for example. Could you run this again with the same diff and instead of running fstat -p, could you attach to the spinning process with gdb and show the backtrace? pkg_add gdb egdb ~/bin/got (or ~/bin/got-read-pack etc.) attach $PID-of-process-which-printed-the-error bt