Download raw body.
sparc64 regress ulimit
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
sparc64 regress ulimit