Searched hist:"5 bdce6ff546e00673f9f515d2165d02901e858aa" (Results 1 – 2 of 2) sorted by relevance
/freebsd/bin/pwait/ |
H A D | pwait.1 | diff 5bdce6ff546e00673f9f515d2165d02901e858aa Thu Jan 21 22:26:15 CET 2021 Alexander V. Chernikov <melifaro@FreeBSD.org> Remove deadlock in rc caused by pwait waiting for itself.
The following situation can trigger the deadlock: 1) Long time ago a_service was started through rc.d 2) We want to restart a_service and issue service a_service restart 3) rc.subr reads current process PID (via file or process), sends TERM signal and runs pwait with PID harvested 4) a_service process dies very quickly so it's PID becomes available. It is possible that while original process was running, PID counter overflowed and pwait got assigned a_service's PID.
This patch ignores pid(s) to wait that are equal to pwait PID.
Reported by: Dan McGregor, Boris Lytochkin Submitted by: Boris Lytochkin <lytboris at gmail.com> Reviewed By: 0mp MFC after: 2 weeks PR: 218598 Differential Revision: https://reviews.freebsd.org/D28240
|
H A D | pwait.c | diff 5bdce6ff546e00673f9f515d2165d02901e858aa Thu Jan 21 22:26:15 CET 2021 Alexander V. Chernikov <melifaro@FreeBSD.org> Remove deadlock in rc caused by pwait waiting for itself.
The following situation can trigger the deadlock: 1) Long time ago a_service was started through rc.d 2) We want to restart a_service and issue service a_service restart 3) rc.subr reads current process PID (via file or process), sends TERM signal and runs pwait with PID harvested 4) a_service process dies very quickly so it's PID becomes available. It is possible that while original process was running, PID counter overflowed and pwait got assigned a_service's PID.
This patch ignores pid(s) to wait that are equal to pwait PID.
Reported by: Dan McGregor, Boris Lytochkin Submitted by: Boris Lytochkin <lytboris at gmail.com> Reviewed By: 0mp MFC after: 2 weeks PR: 218598 Differential Revision: https://reviews.freebsd.org/D28240
|