-
Improvement
-
Resolution: Unresolved
-
Major
-
-
Pipeline Nodes and Processes 2.22
Retroactively filing an issue originally treated as part of JENKINS-38381, since it is independently mergeable and has some independent benefits even when using existing (per-step, master-based) log storage.
Historically, when running durable tasks (sh and kin), running output was handled by having the master send a callable to the agent at intervals, initially short (¼s) but growing exponentially up to some maximum (15s) if the process seems to be idle, and resetting to short again if and when fresh output is detected.
Not only is there up to a 15s delay in displaying new output, this is wasteful of master and network resources when the process is idle for a long time; and sending a UserRequest and corresponding response involves a fair amount of Java serialization.
By contrast, non-durable processes (such as those created by Launcher in a freestyle build) use RemoteOutputStream to send content from the agent to master as soon as it is available, minimizing network traffic; Remoting is also able to optimize this kind of traffic by sending low-overhead Chunk packets of tailored sizes.
Durable tasks should switch from the policy of pulling log output to having the agent push log output. The content cannot be detected immediately, since we are effectively tailing a log file, but it can be detected quickly after the log file is updated with minimal overhead.
- blocks
-
JENKINS-38381 [JEP-210] Optimize log handling in Pipeline and Durable Task
- Resolved
- causes
-
JENKINS-71970 Memory leak due to channel listeners that are never cleared
- Closed
- depends on
-
JENKINS-71509 ssh-steps plugin leaking credentials to log when using plugin gradle 2.7
- Closed
- relates to
-
JENKINS-37575 Delays in FileMonitoringTask.WriteLog can cause process output to be resent indefinitely
- Closed
-
JENKINS-53888 Batch step running on a node other than the master fails
- Reopened
-
JENKINS-54643 A connection interruption causes the pipeline to fail when USE_WATCHING=true
- Resolved
-
JENKINS-54081 Timestamps missing for agent-based steps in Pipeline Job 2.26
- Resolved
-
JENKINS-68080 Pipeline: Nodes and Processes experimental push mode does not work on Java 17
- Closed
-
JENKINS-52954 Agent can recover to run jobs after it disconnects
- In Progress
-
JENKINS-56851 Flush durable task output before agent shutdown or before writing lastLocation
- Open
- links to