Skip to content
This repository has been archived by the owner on Apr 25, 2020. It is now read-only.

make issues - duping jobs pipe #6

Open
danielhams opened this issue Jun 14, 2019 · 5 comments
Open

make issues - duping jobs pipe #6

danielhams opened this issue Jun 14, 2019 · 5 comments

Comments

@danielhams
Copy link
Owner

Occasionally make is failing due to "duping jobs pipe".

It possibly open file limit or some other issue. Needs deeper investigation, might be related to IRIX select not working quite exactly like regular select.

@danielhams
Copy link
Owner Author

Added some additional tracing in what will be 0.0.7 info to try and help discover what error is actually being returned when this happens.

@danielhams
Copy link
Owner Author

Issue reproduced with jobserver_pre_acquire - looks like make_job_rfd returns -1 from make_job_rfd() call.

This is EINTRLOOP(job_rfd, dup(job_fds[0])) - at a guess irix occasionally return EMFILE for too many files or something like that.

To dig deeper later.

@danielhams
Copy link
Owner Author

And so I have my first occurence of this with the logging in place.

In posixos.c, jobserver_pre_acquire:

DH job_fds[0]=3 job_rfd=-1 and errno=2
DH job_rf_val=-1

Which is actually failing deeper down in the make_job_rfd code - which in turn is a call to EINTRLOOP that isn't giving back what it should.

@danielhams
Copy link
Owner Author

Another one:

DH job_fds[0]=3 job_rfd=-1 and errno=9
DH job_rf_val=-1
make: *** duping jobs pipe #2: Bad file number

@danielhams
Copy link
Owner Author

Massive hit this too:

DH job_fds[0]=6 job_rfd=-1 and errno=9
DH job_rf_val=-1
make[2]:  duping jobs pipe #2: Bad file number.  Stop.
make[2]:  Waiting for unfinished jobs....
  GEN      sys/time.h

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant