[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug #46261] missing usage of EINTRLOOP macro
From: |
Jack Howarth |
Subject: |
[bug #46261] missing usage of EINTRLOOP macro |
Date: |
Wed, 21 Oct 2015 02:02:49 +0000 |
User-agent: |
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_1) AppleWebKit/601.2.7 (KHTML, like Gecko) Version/9.0.1 Safari/601.2.7 |
URL:
<http://savannah.gnu.org/bugs/?46261>
Summary: missing usage of EINTRLOOP macro
Project: make
Submitted by: jwhowarth
Submitted on: Wed 21 Oct 2015 02:02:48 AM GMT
Severity: 3 - Normal
Item Group: Bug
Status: None
Privacy: Public
Assigned to: None
Open/Closed: Open
Discussion Lock: Any
Component Version: 4.1
Operating System: POSIX-Based
Fixed Release: None
Triage Status: None
_______________________________________________________
Details:
The fink project has found that their package manager (which uses flock()
under perl) triggers a race condition in make 4.1 producing build failures of
the form...
make: INTERNAL: Exiting with 1 jobserver tokens available; should be 8!
on OS X 10.12.
The following code in main.c is suspected...
3365 /* Close the write side, so the read() won't hang. */
3366 close (job_fds[1]);
3367
3368 while (read (job_fds[0], &token, 1) == 1)
3369 ++tcnt;
3370 #endif
3371
3372 if (tcnt != master_job_slots)
3373 ONN (error, NILF,
3374 "INTERNAL: Exiting with %u jobserver tokens available;
should be %u!",
3375 tcnt, master_job_slots);
3376
3377 #ifdef WINDOWS32
3378 free_jobserver_semaphore ();
3379 #else
3380 close (job_fds[0]);
3381 #endif
3382
as the section...
while (read (job_fds[0], &token, 1) == 1)
++tcnt;
seems to be missing the usage of the EINTRLOOP() macro and the reads could
fail with EINTR resulting in tcnt being left at 1 as observed when make 4.1 is
executed from perl with prior flock() usage in the perl scripts.
Any idea how to adjust those two lines to properly use the EINTRLOOP()
macro?
_______________________________________________________
Reply to this item at:
<http://savannah.gnu.org/bugs/?46261>
_______________________________________________
Message sent via/by Savannah
http://savannah.gnu.org/
- [bug #46261] missing usage of EINTRLOOP macro,
Jack Howarth <=
- [bug #46261] missing usage of EINTRLOOP macro, Jack Howarth, 2015/10/20
- [bug #46261] missing usage of EINTRLOOP macro, Jack Howarth, 2015/10/20
- [bug #46261] missing usage of EINTRLOOP macro, Jack Howarth, 2015/10/20
- [bug #46261] missing usage of EINTRLOOP macro, Jack Howarth, 2015/10/21
- [bug #46261] missing usage of EINTRLOOP macro, Jack Howarth, 2015/10/21
- [bug #46261] missing usage of EINTRLOOP macro, Jack Howarth, 2015/10/21
- [bug #46261] missing usage of EINTRLOOP macro, Jack Howarth, 2015/10/21
- [bug #46261] missing usage of EINTRLOOP macro, Jack Howarth, 2015/10/21
- [bug #46261] missing usage of EINTRLOOP macro, Jack Howarth, 2015/10/22
- [bug #46261] missing usage of EINTRLOOP macro, Jack Howarth, 2015/10/23