Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-72948

IOException: Cannot save actions for StepAtomNode is logged if Blue Ocean is installed

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Major Major
    • blueocean-plugin
    • None
    • Jenkins version: 2.426.3
      pipeline-build-step-plugin version: 540.vb_e8849e1a_b_d8
      Blue Ocean: 1.27.9
      Java: 11 & 21 (happen on both Java versions)

      When executing Jenkins builds step

      build(job: projectName, parameters: parametersList, propagate: false, wait: false) 

      Our Jenkins log started to shows these randomly:

       

      2024-03-31 12:30:14.997+0000 [id=41678732]	WARNING	o.j.p.workflow.graph.FlowNode#persistSafe: failed to save actions for FlowNode id=625java.io.IOException: Cannot save actions for StepAtomNode[id=625, exec=CpsFlowExecution[Owner[JOB_NAME/4951:JOB_NAME #4951]]] for completed execution CpsFlowExecution[Owner[JOB_NAME/4951:JOB_NAME #4951]]: [org.jenkinsci.plugins.workflow.cps.actions.ArgumentsActionImpl@60caf9d6, org.jenkinsci.plugins.workflow.actions.TimingAction@6fd35569, FlowNodeMonitoringAction{traceId='99f13df0e0169ff07307cf166387b20a', spanId='f40b9f31850fa5f5', span.name='build: Internal.Autosmoke.SetP4Label'}, org.jenkinsci.plugins.workflow.support.actions.LogStorageAction@3a45581a, org.jenkinsci.plugins.workflow.actions.LabelAction@2dd66017, io.jenkins.blueocean.listeners.NodeDownstreamBuildAction@9734b0d9]	at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.saveActions(CpsFlowExecution.java:1281)	at org.jenkinsci.plugins.workflow.graph.FlowNode.save(FlowNode.java:486)	at org.jenkinsci.plugins.workflow.graph.FlowNode.persistSafe(FlowNode.java:492)	at org.jenkinsci.plugins.workflow.graph.FlowNode$1.add(FlowNode.java:442)	at org.jenkinsci.plugins.workflow.graph.FlowNode$1.add(FlowNode.java:432)	at java.base/java.util.AbstractList.add(AbstractList.java:111)	at hudson.model.Actionable.addAction(Actionable.java:155)	at io.jenkins.blueocean.listeners.DownstreamJobListener.onStarted(DownstreamJobListener.java:66)	at hudson.model.listeners.RunListener.lambda$fireStarted$2(RunListener.java:230)	at jenkins.util.Listeners.lambda$notify$0(Listeners.java:59)	at jenkins.util.Listeners.notify(Listeners.java:67)	at hudson.model.listeners.RunListener.fireStarted(RunListener.java:228)	at org.jenkinsci.plugins.workflow.job.WorkflowRun.run(WorkflowRun.java:303)	at hudson.model.ResourceController.execute(ResourceController.java:101)	at hudson.model.Executor.run(Executor.java:442)2024-03-31 12:30:14.997+0000 [id=41678732]	SEVERE	i.j.b.l.DownstreamJobListener#onStarted: Could not persist node: java.io.IOException: Cannot save actions for StepAtomNode[id=625, exec=CpsFlowExecution[Owner[JOB_NAME/4951:JOB_NAME #4951]]] for completed execution CpsFlowExecution[Owner[JOB_NAME/4951:JOB_NAME #4951]]: [org.jenkinsci.plugins.workflow.cps.actions.ArgumentsActionImpl@60caf9d6, org.jenkinsci.plugins.workflow.actions.TimingAction@6fd35569, FlowNodeMonitoringAction{traceId='99f13df0e0169ff07307cf166387b20a', spanId='f40b9f31850fa5f5', span.name='build: Internal.Autosmoke.SetP4Label'}, org.jenkinsci.plugins.workflow.support.actions.LogStorageAction@3a45581a, org.jenkinsci.plugins.workflow.actions.LabelAction@2dd66017, io.jenkins.blueocean.listeners.NodeDownstreamBuildAction@9734b0d9] 

       

       

        1. caller-1-config.xml
          1 kB
        2. call-me-1-config.xml
          2 kB
        3. plugins.txt
          3 kB
        4. run-jenkins.sh
          0.9 kB

          [JENKINS-72948] IOException: Cannot save actions for StepAtomNode is logged if Blue Ocean is installed

          Mark Waite added a comment - - edited

          Thanks for reporting the issue. I made some guesses about the other plugins you might have installed and am able to sometimes duplicate the same issue that you're seeing. The stack trace that I see is:

          2024-04-02 03:30:12.423+0000 [id=119]   SEVERE  i.j.b.l.DownstreamJobListener#onStarted: Could not persist node: java.io.IOException: Cannot save actions for StepAtomNode[id=7, exec=CpsFlowExecution[Owner[caller-1/7:caller-1 #7]]] for completed execution CpsFlowExecution[Owner[caller-1/7:caller-1 #7]]: [org.jenkinsci.plugins.workflow.cps.actions.ArgumentsActionImpl@3bd59c6c, org.jenkinsci.plugins.workflow.actions.TimingAction@3716cee8, org.jenkinsci.plugins.workflow.support.actions.LogStorageAction@44e5e8d5, org.jenkinsci.plugins.workflow.actions.LabelAction@421520e8, io.jenkins.blueocean.listeners.NodeDownstreamBuildAction@4c53a9ab]
          2024-04-02 03:30:23.709+0000 [id=143]   WARNING o.j.p.workflow.graph.FlowNode#persistSafe: failed to save actions for FlowNode id=7
          java.io.IOException: Cannot save actions for StepAtomNode[id=7, exec=CpsFlowExecution[Owner[caller-1/8:caller-1 #8]]] for completed execution CpsFlowExecution[Owner[caller-1/8:caller-1 #8]]: [org.jenkinsci.plugins.workflow.cps.actions.ArgumentsActionImpl@4e215710, org.jenkinsci.plugins.workflow.actions.TimingAction@4224161e, org.jenkinsci.plugins.workflow.support.actions.LogStorageAction@2835f7b2, org.jenkinsci.plugins.workflow.actions.LabelAction@175527ea, io.jenkins.blueocean.listeners.NodeDownstreamBuildAction@4c53ad6d]
                  at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.saveActions(CpsFlowExecution.java:1286)
                  at org.jenkinsci.plugins.workflow.graph.FlowNode.save(FlowNode.java:486)
                  at org.jenkinsci.plugins.workflow.graph.FlowNode.persistSafe(FlowNode.java:492)
                  at org.jenkinsci.plugins.workflow.graph.FlowNode$1.add(FlowNode.java:442)
                  at org.jenkinsci.plugins.workflow.graph.FlowNode$1.add(FlowNode.java:432)
                  at java.base/java.util.AbstractList.add(AbstractList.java:113)
                  at hudson.model.Actionable.addAction(Actionable.java:155)
                  at io.jenkins.blueocean.listeners.DownstreamJobListener.onStarted(DownstreamJobListener.java:66)
                  at hudson.model.listeners.RunListener.lambda$fireStarted$2(RunListener.java:230)
                  at jenkins.util.Listeners.lambda$notify$0(Listeners.java:59)
                  at jenkins.util.Listeners.notify(Listeners.java:67)
                  at hudson.model.listeners.RunListener.fireStarted(RunListener.java:228)
                  at org.jenkinsci.plugins.workflow.job.WorkflowRun.run(WorkflowRun.java:303)
                  at hudson.model.ResourceController.execute(ResourceController.java:101)
                  at hudson.model.Executor.run(Executor.java:442)
          

          The configuration that I used to show the issue was created with the following steps:

          1. Create a plugins.txt file with the list of plugins and their versions, including Blue Ocean 1.27.9 and pipeline build step 540.vb_e8849e1a_b_d8. Other plugins are their most recent releases at the time I ran the test
          2. Create a run-jenkins.sh script that downloads Jenkins 2.426.3 and the defined plugins and starts Jenkins
          3. Complete the setup wizard by creating a user for myself and by choosing to install no additional plugins (since the plugins.txt file provided them all)
          4. Define a parameterized Pipeline job that takes a boolean parameter and reports the value of that parameter. The job is named "call-me-1" and is saved in the issue tracker as call-me-1-config.xml
          5.  Run the parameterized Pipeline job a few times to confirm it prompts for the parameter on the second run and later runs
          6. Define a Pipeline job that calls the first job. The job is named "caller-1" and is saved in the issue tracker as caller-1-config.xml
          7. Run the second Pipeline job several times. Confirm that a few of those times will result in the stack trace. No failure in the job, just the stack trace written to output

          Upgrading to Blue Ocean 1.27.11 did not change the behavior. The message is still written.

          After removing the Blue Ocean plugins, the message is no longer written on my system, even with more than 10 runs of the calling job.

          After installing the Pipeline graph view plugin, the message is still not written on my system. You might consider switching to Pipeline graph view instead of Blue Ocean.

          Mark Waite added a comment - - edited Thanks for reporting the issue. I made some guesses about the other plugins you might have installed and am able to sometimes duplicate the same issue that you're seeing. The stack trace that I see is: 2024-04-02 03:30:12.423+0000 [id=119] SEVERE i.j.b.l.DownstreamJobListener#onStarted: Could not persist node: java.io.IOException: Cannot save actions for StepAtomNode[id=7, exec=CpsFlowExecution[Owner[caller-1/7:caller-1 #7]]] for completed execution CpsFlowExecution[Owner[caller-1/7:caller-1 #7]]: [org.jenkinsci.plugins.workflow.cps.actions.ArgumentsActionImpl@3bd59c6c, org.jenkinsci.plugins.workflow.actions.TimingAction@3716cee8, org.jenkinsci.plugins.workflow.support.actions.LogStorageAction@44e5e8d5, org.jenkinsci.plugins.workflow.actions.LabelAction@421520e8, io.jenkins.blueocean.listeners.NodeDownstreamBuildAction@4c53a9ab] 2024-04-02 03:30:23.709+0000 [id=143] WARNING o.j.p.workflow.graph.FlowNode#persistSafe: failed to save actions for FlowNode id=7 java.io.IOException: Cannot save actions for StepAtomNode[id=7, exec=CpsFlowExecution[Owner[caller-1/8:caller-1 #8]]] for completed execution CpsFlowExecution[Owner[caller-1/8:caller-1 #8]]: [org.jenkinsci.plugins.workflow.cps.actions.ArgumentsActionImpl@4e215710, org.jenkinsci.plugins.workflow.actions.TimingAction@4224161e, org.jenkinsci.plugins.workflow.support.actions.LogStorageAction@2835f7b2, org.jenkinsci.plugins.workflow.actions.LabelAction@175527ea, io.jenkins.blueocean.listeners.NodeDownstreamBuildAction@4c53ad6d] at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.saveActions(CpsFlowExecution.java:1286) at org.jenkinsci.plugins.workflow.graph.FlowNode.save(FlowNode.java:486) at org.jenkinsci.plugins.workflow.graph.FlowNode.persistSafe(FlowNode.java:492) at org.jenkinsci.plugins.workflow.graph.FlowNode$1.add(FlowNode.java:442) at org.jenkinsci.plugins.workflow.graph.FlowNode$1.add(FlowNode.java:432) at java.base/java.util.AbstractList.add(AbstractList.java:113) at hudson.model.Actionable.addAction(Actionable.java:155) at io.jenkins.blueocean.listeners.DownstreamJobListener.onStarted(DownstreamJobListener.java:66) at hudson.model.listeners.RunListener.lambda$fireStarted$2(RunListener.java:230) at jenkins.util.Listeners.lambda$notify$0(Listeners.java:59) at jenkins.util.Listeners.notify(Listeners.java:67) at hudson.model.listeners.RunListener.fireStarted(RunListener.java:228) at org.jenkinsci.plugins.workflow.job.WorkflowRun.run(WorkflowRun.java:303) at hudson.model.ResourceController.execute(ResourceController.java:101) at hudson.model.Executor.run(Executor.java:442) The configuration that I used to show the issue was created with the following steps: Create a plugins.txt file with the list of plugins and their versions, including Blue Ocean 1.27.9 and pipeline build step 540.vb_e8849e1a_b_d8. Other plugins are their most recent releases at the time I ran the test Create a run-jenkins.sh script that downloads Jenkins 2.426.3 and the defined plugins and starts Jenkins Complete the setup wizard by creating a user for myself and by choosing to install no additional plugins (since the plugins.txt file provided them all) Define a parameterized Pipeline job that takes a boolean parameter and reports the value of that parameter. The job is named "call-me-1" and is saved in the issue tracker as call-me-1-config.xml  Run the parameterized Pipeline job a few times to confirm it prompts for the parameter on the second run and later runs Define a Pipeline job that calls the first job. The job is named "caller-1" and is saved in the issue tracker as caller-1-config.xml Run the second Pipeline job several times. Confirm that a few of those times will result in the stack trace. No failure in the job, just the stack trace written to output Upgrading to Blue Ocean 1.27.11 did not change the behavior. The message is still written. After removing the Blue Ocean plugins, the message is no longer written on my system, even with more than 10 runs of the calling job. After installing the Pipeline graph view plugin, the message is still not written on my system. You might consider switching to Pipeline graph view instead of Blue Ocean.

          Mark Waite added a comment -

          I've reassigned the issue to the Blue Ocean plugin because I don't see that stack trace after removing the Blue Ocean plugin.

          Mark Waite added a comment - I've reassigned the issue to the Blue Ocean plugin because I don't see that stack trace after removing the Blue Ocean plugin.

            Unassigned Unassigned
            ldang Luke Dang
            Votes:
            3 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated: