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/

Attachment: signature.asc
Description: PGP signature

Reply via email to