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

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

    XMLWordPrintable

Details

    • 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 tscherler 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

          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.

          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.

          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.

          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.
          jamesdumay James Dumay added a comment -

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

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

          tscherler 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.

          jamesdumay James Dumay added a comment - tscherler 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.
          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.

          tfennelly what can be the cause of

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

          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. tfennelly what can be the cause of GET https://ci.blueocean.io/sse-gateway/listen/jenkins_blueocean net::ERR_INCOMPLETE_CHUNKED_ENCODING
          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 tfennelly

          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 michaelneale has an idea what could go on?

          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 tfennelly 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 michaelneale has an idea what could go on?
          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 tfennelly 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).

          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 tfennelly 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).
          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.

          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

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

            Dates

              Created:
              Updated:
              Resolved: