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

Result modal never transitions from running to success/fail (AWOL SSE messages)

    Details

    • Similar Issues:
    • Sprint:
      1.0-m11, 1.0-m12

      Description

      Steps to reproduce
      1. Run a pipeline and open the result modal
      2. wait for the pipeline to finish
      3. all nodes in the pipeline graph are ticked but the header never changes from the running state to a final success/failure screen. There are thousands of errors in the js console.

      In Scope

      • Fix the bug
      • add a appropriate tests

      MN Note: this seems to happen primarily on .io - which is remote, vs local. However Thorsten Scherler believes he can reproduce it locally with the acceptance test harness. This is due to SSE events not arriving for some reason. Locally no one has been able to reproduce this in a browser.

        Attachments

          Activity

          Hide
          jamesdumay James Dumay added a comment -

          Warning: setState(...): Can only update a mounted or mounting component. This usually means you called setState() on an unmounted component. This is a no-op. Please check the code for the undefined component.
          Warning: setState(...): Can only update a mounted or mounting component. This usually means you called setState() on an unmounted component. This is a no-op. Please check the code for the undefined component.
          12189 console messages are not shown.
          Warning: setState(...): Can only update a mounted or mounting component. This usually means you called setState() on an unmounted component. This is a no-op. Please check the code for the undefined component.
          Failed to load resource: net::ERR_INCOMPLETE_CHUNKED_ENCODING
          GET https://ci.blueocean.io/sse-gateway/listen/jenkins_blueocean net::ERR_INCOMPLETE_CHUNKED_ENCODING
          GET https://ci.blueocean.io/sse-gateway/listen/jenkins_blueocean net::ERR_INCOMPLETE_CHUNKED_ENCODING
          Warning: setState(...): Can only update a mounted or mounting component. This usually means you called setState() on an unmounted component. This is a no-op. Please check the code for the undefined component.
          GET https://ci.blueocean.io/sse-gateway/listen/jenkins_blueocean net::ERR_INCOMPLETE_CHUNKED_ENCODING
          Warning: setState(...): Can only update a mounted or mounting component. This usually means you called setState() on an unmounted component. This is a no-op. Please check the code for the undefined component.
          Fetch complete: GET "https://ci.blueocean.io/blue/rest/search/?q=type:pipeline;excludedFromFlattening:jenkins.branch.MultiBranchProject".
          Warning: setState(...): Can only update a mounted or mounting component. This usually means you called setState() on an unmounted component. This is a no-op. Please check the code for the undefined component.
          GET https://ci.blueocean.io/sse-gateway/listen/jenkins_blueocean net::ERR_INCOMPLETE_CHUNKED_ENCODING
          Warning: setState(...): Can only update a mounted or mounting component. This usually means you called setState() on an unmounted component. This is a no-op. Please check the code for the undefined component.

          Show
          jamesdumay James Dumay added a comment - Warning: setState(...): Can only update a mounted or mounting component. This usually means you called setState() on an unmounted component. This is a no-op. Please check the code for the undefined component. Warning: setState(...): Can only update a mounted or mounting component. This usually means you called setState() on an unmounted component. This is a no-op. Please check the code for the undefined component. 12189 console messages are not shown. Warning: setState(...): Can only update a mounted or mounting component. This usually means you called setState() on an unmounted component. This is a no-op. Please check the code for the undefined component. Failed to load resource: net::ERR_INCOMPLETE_CHUNKED_ENCODING GET https://ci.blueocean.io/sse-gateway/listen/jenkins_blueocean net::ERR_INCOMPLETE_CHUNKED_ENCODING GET https://ci.blueocean.io/sse-gateway/listen/jenkins_blueocean net::ERR_INCOMPLETE_CHUNKED_ENCODING Warning: setState(...): Can only update a mounted or mounting component. This usually means you called setState() on an unmounted component. This is a no-op. Please check the code for the undefined component. GET https://ci.blueocean.io/sse-gateway/listen/jenkins_blueocean net::ERR_INCOMPLETE_CHUNKED_ENCODING Warning: setState(...): Can only update a mounted or mounting component. This usually means you called setState() on an unmounted component. This is a no-op. Please check the code for the undefined component. Fetch complete: GET "https://ci.blueocean.io/blue/rest/search/?q=type:pipeline;excludedFromFlattening:jenkins.branch.MultiBranchProject". Warning: setState(...): Can only update a mounted or mounting component. This usually means you called setState() on an unmounted component. This is a no-op. Please check the code for the undefined component. GET https://ci.blueocean.io/sse-gateway/listen/jenkins_blueocean net::ERR_INCOMPLETE_CHUNKED_ENCODING Warning: setState(...): Can only update a mounted or mounting component. This usually means you called setState() on an unmounted component. This is a no-op. Please check the code for the undefined component.
          Hide
          tscherler Thorsten Scherler added a comment -

          I tried your steps to reproduce it but with out success on my local system, however the stacktrace

          GET https://ci.blueocean.io/sse-gateway/listen/jenkins_blueocean net::ERR_INCOMPLETE_CHUNKED_ENCODING
          Warning: setState(...): Can only update a mounted or mounting component. This usually means you called setState() on an unmounted component. This is a no-op. Please check the code for the undefined component.
          Fetch complete: GET "https://ci.blueocean.io/blue/rest/search/?q=type:pipeline;excludedFromFlattening:jenkins.branch.MultiBranchProject".
          Warning: setState(...): Can only update a mounted or mounting component. This usually means you called setState() on an unmounted component. This is a no-op. Please check the code for the undefined component.
          

          Seems that somewhere we try to do setState, which seems the cause of this issue.

          Show
          tscherler Thorsten Scherler added a comment - I tried your steps to reproduce it but with out success on my local system, however the stacktrace GET https: //ci.blueocean.io/sse-gateway/listen/jenkins_blueocean net::ERR_INCOMPLETE_CHUNKED_ENCODING Warning: setState(...): Can only update a mounted or mounting component. This usually means you called setState() on an unmounted component. This is a no-op. Please check the code for the undefined component. Fetch complete: GET "https: //ci.blueocean.io/blue/ rest /search/?q=type:pipeline;excludedFromFlattening:jenkins.branch.MultiBranchProject" . Warning: setState(...): Can only update a mounted or mounting component. This usually means you called setState() on an unmounted component. This is a no-op. Please check the code for the undefined component. Seems that somewhere we try to do setState, which seems the cause of this issue.
          Hide
          jamesdumay James Dumay added a comment -

          Thorsten Scherler did you try this on blueocean.io's Jenkins Design Language pipeline?

          Show
          jamesdumay James Dumay added a comment - Thorsten Scherler did you try this on blueocean.io's Jenkins Design Language pipeline?
          Hide
          jamesdumay James Dumay added a comment -

          Thorsten Scherler I tried this today and I got a similar problem where the state did not transition but there was an 404 in the console trying to fetch the log of the last node.

          Show
          jamesdumay James Dumay added a comment - Thorsten Scherler I tried this today and I got a similar problem where the state did not transition but there was an 404 in the console trying to fetch the log of the last node.
          Hide
          tscherler Thorsten Scherler added a comment - - edited

          https://youtu.be/w9KbdgfKQjc I captured a screencast of it and may found the main cause.

          The problem seem to be that the sse events are not getting delivered to the component and therefore we do not refetch the underlying data, leaving the component in a state of limbo.

          Tom FENNELLY what can be the cause of

          GET https://ci.blueocean.io/sse-gateway/listen/jenkins_blueocean net::ERR_INCOMPLETE_CHUNKED_ENCODING

          Show
          tscherler Thorsten Scherler added a comment - - edited https://youtu.be/w9KbdgfKQjc I captured a screencast of it and may found the main cause. The problem seem to be that the sse events are not getting delivered to the component and therefore we do not refetch the underlying data, leaving the component in a state of limbo. Tom FENNELLY what can be the cause of GET https://ci.blueocean.io/sse-gateway/listen/jenkins_blueocean net::ERR_INCOMPLETE_CHUNKED_ENCODING
          Hide
          tscherler Thorsten Scherler added a comment - - edited

          I fixed some of the errors of the initial screenshot. especially "setState(...)..." see https://github.com/jenkinsci/blueocean-plugin/pull/350 by clearing the timeouts.

          However I just observed again the failure on the io server. It really points to some problems with the sse. I need to consult Tom FENNELLY

          Further I cannot recall to have seen it locally failed once while developing on the karaoke mode, it could be specific to the setup of the io. The bad gateway at least have all the looks of it, but maybe Michael Neale has an idea what could go on?

          Show
          tscherler Thorsten Scherler added a comment - - edited I fixed some of the errors of the initial screenshot. especially "setState(...)..." see https://github.com/jenkinsci/blueocean-plugin/pull/350 by clearing the timeouts. However I just observed again the failure on the io server. It really points to some problems with the sse. I need to consult Tom FENNELLY Further I cannot recall to have seen it locally failed once while developing on the karaoke mode, it could be specific to the setup of the io. The bad gateway at least have all the looks of it, but maybe Michael Neale has an idea what could go on?
          Hide
          michaelneale Michael Neale added a comment -

          I think there may be other ways the events don't arrive (I am sure I have seen that with certain branch names in folders) - but in that case it always happens, not intermittent.

          If you can't see it locally then I am not sure, it may be an issue with running through a proxy. If so, running a proxy locally (a little bit of work) may not be a bad idea. Otherwise it may be timing due to internet (I think chrome has tools to simulate lag, which may be worth trying).

          Otherwise, book some time with Tom FENNELLY and he can probably spot it. that ERR_INCOMPLETE_CHUNKED_ENCODING does not happen locally, which is interesting (at least not that I have seen).

          Show
          michaelneale Michael Neale added a comment - I think there may be other ways the events don't arrive (I am sure I have seen that with certain branch names in folders) - but in that case it always happens, not intermittent. If you can't see it locally then I am not sure, it may be an issue with running through a proxy. If so, running a proxy locally (a little bit of work) may not be a bad idea. Otherwise it may be timing due to internet (I think chrome has tools to simulate lag, which may be worth trying). Otherwise, book some time with Tom FENNELLY and he can probably spot it. that ERR_INCOMPLETE_CHUNKED_ENCODING does not happen locally, which is interesting (at least not that I have seen).
          Hide
          michaelneale Michael Neale added a comment -

          This wasn't tested locally. tickets based only on .io without local verification are not valid and kind of waste everyones time.

          Show
          michaelneale Michael Neale added a comment - This wasn't tested locally. tickets based only on .io without local verification are not valid and kind of waste everyones time.

            People

            • Assignee:
              tfennelly Tom FENNELLY
              Reporter:
              jamesdumay James Dumay
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: