URL: <https://savannah.gnu.org/bugs/?67687>
Summary: make doesn't return jobserver tokens as a client on
SIGINT
Group: make
Submitter: thesamesam
Submitted: Sun 09 Nov 2025 04:57:45 PM UTC
Severity: 3 - Normal
Priority: 5 - Normal
Item Group: None
Status: None
Privacy: Public
Assigned to: None
Open/Closed: Open
Discussion Lock: Any
Component Version: None
Operating System: None
Fixed Release: None
Triage Status: None
_______________________________________________________
Follow-up Comments:
-------------------------------------------------------
Date: Sun 09 Nov 2025 04:57:45 PM UTC By: Sam James <thesamesam>
Reporting on behalf of Michał Górny.
With the following Makefile:
```
all: a b c d e f
a:
sleep 180
b:
sleep 180
c:
sleep 180
d:
sleep 180
e:
sleep 180
f:
sleep 180
```
Start a jobserver (we've written a small jobserver impl called 'steve' at
https://gitweb.gentoo.org/proj/steve.git/, but I've reproduced this with
ninja's misc/jobserver_pool.py too):
```
steve -j3 /tmp/jobs &
```
Then run Make once, and interrupt it:
```
MAKEFLAGS='--jobserver-auth=fifo:/tmp/fifo' make
^Csleep 180
make: *** [Makefile:4: a] Interrupt
sleep 180
make: *** [Makefile:6: b] Interrupt
sleep 180
make: *** [Makefile:8: c] Interrupt
```
Then run it again and observe only one job is started because make didn't
return the previous tokens on SIGINT:
```
$ MAKEFLAGS='--jobserver-auth=fifo:/tmp/fifo' make
^Csleep 180
make: *** [Makefile:4: a] Interrupt
```
_______________________________________________________
Reply to this item at:
<https://savannah.gnu.org/bugs/?67687>
_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/
signature.asc
Description: PGP signature
