workflow-cps-plugin icon indicating copy to clipboard operation
workflow-cps-plugin copied to clipboard

Improve durability of `SURVIVABLE_NONATOMIC` while retaining the skipping of `fsync(2)`

Open basil opened this issue 4 years ago • 1 comments

See JENKINS-66001. Downstream of jenkinsci/jenkins#5599, jenkinsci/workflow-api-plugin#163, and jenkinsci/workflow-support-plugin#120. Part 4 of a 5-part series to make Pipeline's SURVIVABLE_NONATOMIC mode behave as advertised in the documentation (part 5 is in jenkinsci/workflow-job-plugin#199).

I tested this by running a Pipeline job with 100 steps in SURVIVABLE_NONATOMIC mode while simultaneously attaching a remote debugger to XmlFile and monitoring fsync(2) calls with syncsnoop.bt. I confirmed that AtomicFileWriter was being used in the Java debugger, and I confirmed that fsync(2) was not being used with syncsnoop.bt.

basil avatar Jun 30 '21 16:06 basil

A clean CI run of this PR will depend on removing 2.276 from the Jenkinsfile, which I do not have commit access to do.

basil avatar Jun 30 '21 16:06 basil