Ticket 25911 - proctrack/freebsd-reaper: Track job descendants with FreeBSD process reapers
Summary: proctrack/freebsd-reaper: Track job descendants with FreeBSD process reapers
Status: OPEN
Alias: None
Product: Slurm
Classification: Unclassified
Component: Other (show other tickets)
Version: 26.11.x
Hardware: All Other
: C - Contributions
Assignee: Tim Wickberg
QA Contact:
URL:
Depends on:
Blocks:
 
Reported: 2026-09-26 05:26 MDT by Rikka Göring
Modified: 2026-09-26 07:25 MDT (History)
0 users

See Also:
Site: -Other-
Slinky Site: ---
Alineos Sites: ---
Atos/Eviden Sites: ---
Confidential Site: ---
Coreweave sites: ---
Cray Sites: ---
DS9 clusters: ---
Google sites: ---
HPCnow Sites: ---
HPE Sites: ---
IBM Sites: ---
NOAA SIte: ---
NoveTech Sites: ---
Nvidia HWinf-CS Sites: ---
OCF Sites: ---
Recursion Pharma Sites: ---
SFW Sites: ---
SNIC sites: ---
Tzag Elita Sites: ---
Linux Distro: ---
Machine Name:
CLE Version:
Version Fixed:
Target Release: ---
DevPrio: ---
Emory-Cloud Sites: ---


Attachments
v1 proctrack/freebsd-reaper plugin (58.67 KB, patch)
2026-09-26 05:26 MDT, Rikka Göring
Details | Diff

Note You need to log in before you can comment on or make changes to this ticket.
Description Rikka Göring 2026-09-26 05:26:37 MDT
Created attachment 46325 [details]
v1 proctrack/freebsd-reaper plugin

Add proctrack/freebsd-reaper, a process-tracking plugin using FreeBSD's procctl() process-reaper APIs. The Slurm step daemon acquires reaper status, tracks descendants across process-group changes and nested reapers, and signals the tracked process tree during cleanup. Build the plugin on FreeBSD.

On the FreeBSD test node, the comparison with proctrack/pgid was:

| Test case               |  freebsd-reaper  |  pgid  |
| ----------------------- | ---------------- | ------ |
| Orphaned child          | Pass             | Pass   |
| SIGTERM-resistant child | Pass             | Pass   |
| Nested child            | Pass             | Pass   |
| setsid escape           | Pass             | Fail   |
| setpgid escape          | Pass             | Fail   |
| Double-fork escape      | Pass             | Fail   |
| Nested daemon escape    | Pass             | Fail   |

A zombie regression was also retested: the child briefly became a zombie, disappeared promptly, and the node returned to IDLE without timing out or draining.

The patches apply to master at 9f9da53b4a, and the generated configure script passes a shell syntax check.