-
Bug
-
Resolution: Unresolved
-
Critical
-
Running version 1.30-rc422.f179f78e479f
The merge of PR-98 moved the wrapper process to the background to allow the launching process to quickly exit. However, that very act will orphan the wrapper process. This is only a problem in environments where there is no init process (e.g. docker containers that are run with no --init flag).
Unit tests did not discover this bug due to a race condition of when the last ps was called and when the wrapper process exited. If another ps is called after the test detects that the script as finished running, the zombie state of the wrapper process is revealed.
I'm not sure how much of an issue this really is as there are numerous solutions on enabling zombie-reaping for containers, but as there is an explicit check for zombies in the unit tests, it seemed worth mentioning.
- is caused by
-
JENKINS-58290 WebSocket / OkHttp thread leak from BourneShellScript + ContainerExecDecorator
-
- Resolved
-
- links to
[JENKINS-58656] Wrapper process leaves zombie when no init process present
Description |
Original:
The merge of [PR-98|https://github.com/jenkinsci/durable-task-plugin/pull/98] moved the wrapper process to the background but, as a result, zombies it. This is only a problem in environments where there is no {{init}} process (e.g. docker containers that are run with no {{--init}} flag). Unit tests did not discover this bug due to a race condition of when the last {{ps}} was called and when the wrapper process exited. If another {{ps}} is called after the test detects that the script as finished running, the zombie state of the wrapper process is revealed. I'm not sure how much of an issue this really is as there are numerous solutions on enabling zombie-reaping for containers, but as there is an explicit check for zombies in the unit tests, it seemed worth mentioning. |
New:
The merge of [PR-98|https://github.com/jenkinsci/durable-task-plugin/pull/98] moved the wrapper process to the background to allow the launching process to quickly exit. However, that very act will orphan the wrapper process. This is only a problem in environments where there is no {{init}} process (e.g. docker containers that are run with no {{--init}} flag). Unit tests did not discover this bug due to a race condition of when the last {{ps}} was called and when the wrapper process exited. If another {{ps}} is called after the test detects that the script as finished running, the zombie state of the wrapper process is revealed. I'm not sure how much of an issue this really is as there are numerous solutions on enabling zombie-reaping for containers, but as there is an explicit check for zombies in the unit tests, it seemed worth mentioning. |
Labels | New: pipeline |
Link |
New:
This issue is caused by |
Component/s | New: kubernetes-plugin [ 20639 ] |
Labels | Original: pipeline | New: pipeline regression |
Priority | Original: Minor [ 4 ] | New: Critical [ 2 ] |
Remote Link | New: This issue links to "CloudBees-internal issue (Web Link)" [ 23813 ] |
Remote Link | New: This issue links to "PodProcessNamespaceSharing GA in 1.17 (Web Link)" [ 24113 ] |
Remote Link | New: This issue links to "workflow-durable-task-step-plugin #109 (Web Link)" [ 27333 ] |