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

Don't fetch run data on an event if it not already in the store

    XMLWordPrintable

    Details

    • Similar Issues:
    • Epic Link:

      Description

      This ticket started life as a bug, after observing what was thought to be a regression.

      The BlueOcean main pipeline screen (https://ci.blueocean.io/blue/pipelines) appears to be receiving events for running pipelines that are not visible, and then fetching data, creating more than expected traffic.

      On a regular basis this sends event from the backend to the frontend detailing things that are running.

      To reproduce

      Expected behavior:

      • Should not fetch the run data if the job isn't even in the store.

      Some details

      Event socket:
      https://ci.blueocean.io/sse-gateway/listen/jenkins-blueocean-core-js-1487311928759-80shtgg3w8q5hpelba9k9

      Event data:

      open  {"dispatcherId":"jenkins-blueocean-core-js-1487311928759-80shtgg3w8q5hpelba9k9","dispatcherInst":1238701885}  
      16:15:00.445
      job {"jenkins_object_type":"org.jenkinsci.plugins.workflow.job.WorkflowRun","jenkins_event_uuid":"6c1358f1-f887-41bb-beb9-3228dda99df8","sse_subs_dispatcher_inst":"1238701885","job_run_status":"SUCCESS","job_name":"scratch/bwalding-alwaysBlue","jenkins_org":"jenkins","job_run_queueId":"5246","jenkins_object_name":"#2","blueocean_job_rest_url":"/blue/rest/organizations/jenkins/pipelines/scratch/pipelines/bwalding-alwaysBlue/","jenkins_object_id":"2","jenkins_event":"job_run_ended","sse_subs_dispatcher":"jenkins-blueocean-core-js-1487311928759-80shtgg3w8q5hpelba9k9","blueocean_job_pipeline_name":"scratch/bwalding-alwaysBlue","jenkins_object_url":"job/scratch/job/bwalding-alwaysBlue/2/","jenkins_channel":"job"} 
      

      Once the frontend receives those events, the frontend then makes a call to retrieve details about the run.

      https://ci.blueocean.io/blue/rest/organizations/jenkins/pipelines/scratch/pipelines/bwalding-alwaysBlue/runs/2/

      However the important thing to note is that the bwalding-alwaysBlue job is not visible on the front screen - so the frontend is querying the backend for details on jobs that will not change the state of the front end (afaik)

      In a large instance that is running a lot of jobs all the time, this could be problematic.

        Attachments

          Issue Links

            Activity

            bwalding Ben Walding created issue -
            bwalding Ben Walding made changes -
            Field Original Value New Value
            Description The BlueOcean main pipeline screen has an event websocket thing that is connect to the Jenkins server.

            On a regular basis this sends event from the backend to the frontend detailing things that are running.

            (I hope the 80shtgg3w8q5hpelba9k9 ID isn't something important
            https://ci.blueocean.io/sse-gateway/listen/jenkins-blueocean-core-js-1487311928759-80shtgg3w8q5hpelba9k9

            {noformat}
            open {"dispatcherId":"jenkins-blueocean-core-js-1487311928759-80shtgg3w8q5hpelba9k9","dispatcherInst":1238701885}
            16:15:00.445
            job {"jenkins_object_type":"org.jenkinsci.plugins.workflow.job.WorkflowRun","jenkins_event_uuid":"6c1358f1-f887-41bb-beb9-3228dda99df8","sse_subs_dispatcher_inst":"1238701885","job_run_status":"SUCCESS","job_name":"scratch/bwalding-alwaysBlue","jenkins_org":"jenkins","job_run_queueId":"5246","jenkins_object_name":"#2","blueocean_job_rest_url":"/blue/rest/organizations/jenkins/pipelines/scratch/pipelines/bwalding-alwaysBlue/","jenkins_object_id":"2","jenkins_event":"job_run_ended","sse_subs_dispatcher":"jenkins-blueocean-core-js-1487311928759-80shtgg3w8q5hpelba9k9","blueocean_job_pipeline_name":"scratch/bwalding-alwaysBlue","jenkins_object_url":"job/scratch/job/bwalding-alwaysBlue/2/","jenkins_channel":"job"}
            {noformat}

            Once the frontend receives those events, the frontend then makes a call to retrieve details about the run.

            https://ci.blueocean.io/blue/rest/organizations/jenkins/pipelines/scratch/pipelines/bwalding-alwaysBlue/runs/2/

            However the important thing to note is that the bwalding-alwaysBlue job is not visible on the front screen - so the frontend is querying the backend for details on jobs that will not change the state of the front end (afaik)

            In a large instance that is running a lot of jobs all the time, this could be problematic.
            The BlueOcean main pipeline screen (https://ci.blueocean.io/blue/pipelines) has an event websocket thing that is connect to the Jenkins server.

            On a regular basis this sends event from the backend to the frontend detailing things that are running.

            (I hope the 80shtgg3w8q5hpelba9k9 ID isn't something important
            https://ci.blueocean.io/sse-gateway/listen/jenkins-blueocean-core-js-1487311928759-80shtgg3w8q5hpelba9k9

            {noformat}
            open {"dispatcherId":"jenkins-blueocean-core-js-1487311928759-80shtgg3w8q5hpelba9k9","dispatcherInst":1238701885}
            16:15:00.445
            job {"jenkins_object_type":"org.jenkinsci.plugins.workflow.job.WorkflowRun","jenkins_event_uuid":"6c1358f1-f887-41bb-beb9-3228dda99df8","sse_subs_dispatcher_inst":"1238701885","job_run_status":"SUCCESS","job_name":"scratch/bwalding-alwaysBlue","jenkins_org":"jenkins","job_run_queueId":"5246","jenkins_object_name":"#2","blueocean_job_rest_url":"/blue/rest/organizations/jenkins/pipelines/scratch/pipelines/bwalding-alwaysBlue/","jenkins_object_id":"2","jenkins_event":"job_run_ended","sse_subs_dispatcher":"jenkins-blueocean-core-js-1487311928759-80shtgg3w8q5hpelba9k9","blueocean_job_pipeline_name":"scratch/bwalding-alwaysBlue","jenkins_object_url":"job/scratch/job/bwalding-alwaysBlue/2/","jenkins_channel":"job"}
            {noformat}

            Once the frontend receives those events, the frontend then makes a call to retrieve details about the run.

            https://ci.blueocean.io/blue/rest/organizations/jenkins/pipelines/scratch/pipelines/bwalding-alwaysBlue/runs/2/

            However the important thing to note is that the bwalding-alwaysBlue job is not visible on the front screen - so the frontend is querying the backend for details on jobs that will not change the state of the front end (afaik)

            In a large instance that is running a lot of jobs all the time, this could be problematic.
            michaelneale Michael Neale made changes -
            Priority Minor [ 4 ] Major [ 3 ]
            michaelneale Michael Neale made changes -
            Description The BlueOcean main pipeline screen (https://ci.blueocean.io/blue/pipelines) has an event websocket thing that is connect to the Jenkins server.

            On a regular basis this sends event from the backend to the frontend detailing things that are running.

            (I hope the 80shtgg3w8q5hpelba9k9 ID isn't something important
            https://ci.blueocean.io/sse-gateway/listen/jenkins-blueocean-core-js-1487311928759-80shtgg3w8q5hpelba9k9

            {noformat}
            open {"dispatcherId":"jenkins-blueocean-core-js-1487311928759-80shtgg3w8q5hpelba9k9","dispatcherInst":1238701885}
            16:15:00.445
            job {"jenkins_object_type":"org.jenkinsci.plugins.workflow.job.WorkflowRun","jenkins_event_uuid":"6c1358f1-f887-41bb-beb9-3228dda99df8","sse_subs_dispatcher_inst":"1238701885","job_run_status":"SUCCESS","job_name":"scratch/bwalding-alwaysBlue","jenkins_org":"jenkins","job_run_queueId":"5246","jenkins_object_name":"#2","blueocean_job_rest_url":"/blue/rest/organizations/jenkins/pipelines/scratch/pipelines/bwalding-alwaysBlue/","jenkins_object_id":"2","jenkins_event":"job_run_ended","sse_subs_dispatcher":"jenkins-blueocean-core-js-1487311928759-80shtgg3w8q5hpelba9k9","blueocean_job_pipeline_name":"scratch/bwalding-alwaysBlue","jenkins_object_url":"job/scratch/job/bwalding-alwaysBlue/2/","jenkins_channel":"job"}
            {noformat}

            Once the frontend receives those events, the frontend then makes a call to retrieve details about the run.

            https://ci.blueocean.io/blue/rest/organizations/jenkins/pipelines/scratch/pipelines/bwalding-alwaysBlue/runs/2/

            However the important thing to note is that the bwalding-alwaysBlue job is not visible on the front screen - so the frontend is querying the backend for details on jobs that will not change the state of the front end (afaik)

            In a large instance that is running a lot of jobs all the time, this could be problematic.
            The BlueOcean main pipeline screen (https://ci.blueocean.io/blue/pipelines) appears to be receiving events for running pipelines that are not visible, and then fetching data, creating more than expected traffic.

            On a regular basis this sends event from the backend to the frontend detailing things that are running.

            To reproduce:

            * Open /blue/pipelines/ in one tab
            * Run a job like bwalding-alwaysBlue from a classic screen in another tab
            * Note that /blue/pipelines/ receives events for this job and does requests.

            Some details:

            (I hope the 80shtgg3w8q5hpelba9k9 ID isn't something important
            https://ci.blueocean.io/sse-gateway/listen/jenkins-blueocean-core-js-1487311928759-80shtgg3w8q5hpelba9k9

            {noformat}
            open {"dispatcherId":"jenkins-blueocean-core-js-1487311928759-80shtgg3w8q5hpelba9k9","dispatcherInst":1238701885}
            16:15:00.445
            job {"jenkins_object_type":"org.jenkinsci.plugins.workflow.job.WorkflowRun","jenkins_event_uuid":"6c1358f1-f887-41bb-beb9-3228dda99df8","sse_subs_dispatcher_inst":"1238701885","job_run_status":"SUCCESS","job_name":"scratch/bwalding-alwaysBlue","jenkins_org":"jenkins","job_run_queueId":"5246","jenkins_object_name":"#2","blueocean_job_rest_url":"/blue/rest/organizations/jenkins/pipelines/scratch/pipelines/bwalding-alwaysBlue/","jenkins_object_id":"2","jenkins_event":"job_run_ended","sse_subs_dispatcher":"jenkins-blueocean-core-js-1487311928759-80shtgg3w8q5hpelba9k9","blueocean_job_pipeline_name":"scratch/bwalding-alwaysBlue","jenkins_object_url":"job/scratch/job/bwalding-alwaysBlue/2/","jenkins_channel":"job"}
            {noformat}

            Once the frontend receives those events, the frontend then makes a call to retrieve details about the run.

            https://ci.blueocean.io/blue/rest/organizations/jenkins/pipelines/scratch/pipelines/bwalding-alwaysBlue/runs/2/

            However the important thing to note is that the bwalding-alwaysBlue job is not visible on the front screen - so the frontend is querying the backend for details on jobs that will not change the state of the front end (afaik)

            In a large instance that is running a lot of jobs all the time, this could be problematic.
            michaelneale Michael Neale made changes -
            Assignee Tom FENNELLY [ tfennelly ]
            michaelneale Michael Neale made changes -
            Summary BlueOcean making unnecessary requests for pipeline run details REGRESSION: A lot of unnecessary requests for pipeline run details and events
            michaelneale Michael Neale made changes -
            Description The BlueOcean main pipeline screen (https://ci.blueocean.io/blue/pipelines) appears to be receiving events for running pipelines that are not visible, and then fetching data, creating more than expected traffic.

            On a regular basis this sends event from the backend to the frontend detailing things that are running.

            To reproduce:

            * Open /blue/pipelines/ in one tab
            * Run a job like bwalding-alwaysBlue from a classic screen in another tab
            * Note that /blue/pipelines/ receives events for this job and does requests.

            Some details:

            (I hope the 80shtgg3w8q5hpelba9k9 ID isn't something important
            https://ci.blueocean.io/sse-gateway/listen/jenkins-blueocean-core-js-1487311928759-80shtgg3w8q5hpelba9k9

            {noformat}
            open {"dispatcherId":"jenkins-blueocean-core-js-1487311928759-80shtgg3w8q5hpelba9k9","dispatcherInst":1238701885}
            16:15:00.445
            job {"jenkins_object_type":"org.jenkinsci.plugins.workflow.job.WorkflowRun","jenkins_event_uuid":"6c1358f1-f887-41bb-beb9-3228dda99df8","sse_subs_dispatcher_inst":"1238701885","job_run_status":"SUCCESS","job_name":"scratch/bwalding-alwaysBlue","jenkins_org":"jenkins","job_run_queueId":"5246","jenkins_object_name":"#2","blueocean_job_rest_url":"/blue/rest/organizations/jenkins/pipelines/scratch/pipelines/bwalding-alwaysBlue/","jenkins_object_id":"2","jenkins_event":"job_run_ended","sse_subs_dispatcher":"jenkins-blueocean-core-js-1487311928759-80shtgg3w8q5hpelba9k9","blueocean_job_pipeline_name":"scratch/bwalding-alwaysBlue","jenkins_object_url":"job/scratch/job/bwalding-alwaysBlue/2/","jenkins_channel":"job"}
            {noformat}

            Once the frontend receives those events, the frontend then makes a call to retrieve details about the run.

            https://ci.blueocean.io/blue/rest/organizations/jenkins/pipelines/scratch/pipelines/bwalding-alwaysBlue/runs/2/

            However the important thing to note is that the bwalding-alwaysBlue job is not visible on the front screen - so the frontend is querying the backend for details on jobs that will not change the state of the front end (afaik)

            In a large instance that is running a lot of jobs all the time, this could be problematic.
            The BlueOcean main pipeline screen (https://ci.blueocean.io/blue/pipelines) appears to be receiving events for running pipelines that are not visible, and then fetching data, creating more than expected traffic.

            On a regular basis this sends event from the backend to the frontend detailing things that are running.

            To reproduce:

            * Open /blue/pipelines/ in one tab
            * Run a job like bwalding-alwaysBlue from a classic screen in another tab
            * Note that /blue/pipelines/ receives events for this job and does requests.

            So:

            * Events shouldn't realy arrive as there was nothing subscribing to that pipeline run right?
            * Fetching data about this uninteresting event also seems wrong.

            Some details:

            (I hope the 80shtgg3w8q5hpelba9k9 ID isn't something important
            https://ci.blueocean.io/sse-gateway/listen/jenkins-blueocean-core-js-1487311928759-80shtgg3w8q5hpelba9k9

            {noformat}
            open {"dispatcherId":"jenkins-blueocean-core-js-1487311928759-80shtgg3w8q5hpelba9k9","dispatcherInst":1238701885}
            16:15:00.445
            job {"jenkins_object_type":"org.jenkinsci.plugins.workflow.job.WorkflowRun","jenkins_event_uuid":"6c1358f1-f887-41bb-beb9-3228dda99df8","sse_subs_dispatcher_inst":"1238701885","job_run_status":"SUCCESS","job_name":"scratch/bwalding-alwaysBlue","jenkins_org":"jenkins","job_run_queueId":"5246","jenkins_object_name":"#2","blueocean_job_rest_url":"/blue/rest/organizations/jenkins/pipelines/scratch/pipelines/bwalding-alwaysBlue/","jenkins_object_id":"2","jenkins_event":"job_run_ended","sse_subs_dispatcher":"jenkins-blueocean-core-js-1487311928759-80shtgg3w8q5hpelba9k9","blueocean_job_pipeline_name":"scratch/bwalding-alwaysBlue","jenkins_object_url":"job/scratch/job/bwalding-alwaysBlue/2/","jenkins_channel":"job"}
            {noformat}

            Once the frontend receives those events, the frontend then makes a call to retrieve details about the run.

            https://ci.blueocean.io/blue/rest/organizations/jenkins/pipelines/scratch/pipelines/bwalding-alwaysBlue/runs/2/

            However the important thing to note is that the bwalding-alwaysBlue job is not visible on the front screen - so the frontend is querying the backend for details on jobs that will not change the state of the front end (afaik)

            In a large instance that is running a lot of jobs all the time, this could be problematic.
            bwalding Ben Walding made changes -
            Description The BlueOcean main pipeline screen (https://ci.blueocean.io/blue/pipelines) appears to be receiving events for running pipelines that are not visible, and then fetching data, creating more than expected traffic.

            On a regular basis this sends event from the backend to the frontend detailing things that are running.

            To reproduce:

            * Open /blue/pipelines/ in one tab
            * Run a job like bwalding-alwaysBlue from a classic screen in another tab
            * Note that /blue/pipelines/ receives events for this job and does requests.

            So:

            * Events shouldn't realy arrive as there was nothing subscribing to that pipeline run right?
            * Fetching data about this uninteresting event also seems wrong.

            Some details:

            (I hope the 80shtgg3w8q5hpelba9k9 ID isn't something important
            https://ci.blueocean.io/sse-gateway/listen/jenkins-blueocean-core-js-1487311928759-80shtgg3w8q5hpelba9k9

            {noformat}
            open {"dispatcherId":"jenkins-blueocean-core-js-1487311928759-80shtgg3w8q5hpelba9k9","dispatcherInst":1238701885}
            16:15:00.445
            job {"jenkins_object_type":"org.jenkinsci.plugins.workflow.job.WorkflowRun","jenkins_event_uuid":"6c1358f1-f887-41bb-beb9-3228dda99df8","sse_subs_dispatcher_inst":"1238701885","job_run_status":"SUCCESS","job_name":"scratch/bwalding-alwaysBlue","jenkins_org":"jenkins","job_run_queueId":"5246","jenkins_object_name":"#2","blueocean_job_rest_url":"/blue/rest/organizations/jenkins/pipelines/scratch/pipelines/bwalding-alwaysBlue/","jenkins_object_id":"2","jenkins_event":"job_run_ended","sse_subs_dispatcher":"jenkins-blueocean-core-js-1487311928759-80shtgg3w8q5hpelba9k9","blueocean_job_pipeline_name":"scratch/bwalding-alwaysBlue","jenkins_object_url":"job/scratch/job/bwalding-alwaysBlue/2/","jenkins_channel":"job"}
            {noformat}

            Once the frontend receives those events, the frontend then makes a call to retrieve details about the run.

            https://ci.blueocean.io/blue/rest/organizations/jenkins/pipelines/scratch/pipelines/bwalding-alwaysBlue/runs/2/

            However the important thing to note is that the bwalding-alwaysBlue job is not visible on the front screen - so the frontend is querying the backend for details on jobs that will not change the state of the front end (afaik)

            In a large instance that is running a lot of jobs all the time, this could be problematic.
            The BlueOcean main pipeline screen (https://ci.blueocean.io/blue/pipelines) has an event/websocket thing that is connected to the Jenkins server.

            On a regular basis this sends event from the backend to the frontend detailing things that are running.

            Event socket:
            https://ci.blueocean.io/sse-gateway/listen/jenkins-blueocean-core-js-1487311928759-80shtgg3w8q5hpelba9k9

            Event data:
            {noformat}
            open {"dispatcherId":"jenkins-blueocean-core-js-1487311928759-80shtgg3w8q5hpelba9k9","dispatcherInst":1238701885}
            16:15:00.445
            job {"jenkins_object_type":"org.jenkinsci.plugins.workflow.job.WorkflowRun","jenkins_event_uuid":"6c1358f1-f887-41bb-beb9-3228dda99df8","sse_subs_dispatcher_inst":"1238701885","job_run_status":"SUCCESS","job_name":"scratch/bwalding-alwaysBlue","jenkins_org":"jenkins","job_run_queueId":"5246","jenkins_object_name":"#2","blueocean_job_rest_url":"/blue/rest/organizations/jenkins/pipelines/scratch/pipelines/bwalding-alwaysBlue/","jenkins_object_id":"2","jenkins_event":"job_run_ended","sse_subs_dispatcher":"jenkins-blueocean-core-js-1487311928759-80shtgg3w8q5hpelba9k9","blueocean_job_pipeline_name":"scratch/bwalding-alwaysBlue","jenkins_object_url":"job/scratch/job/bwalding-alwaysBlue/2/","jenkins_channel":"job"}
            {noformat}

            Once the frontend receives those events, the frontend then makes a call to retrieve details about the run.

            https://ci.blueocean.io/blue/rest/organizations/jenkins/pipelines/scratch/pipelines/bwalding-alwaysBlue/runs/2/

            However the important thing to note is that the bwalding-alwaysBlue job is not visible on the front screen - so the frontend is querying the backend for details on jobs that will not change the state of the front end (afaik)



            In a large instance that is running a lot of jobs all the time, this could be problematic.
            michaelneale Michael Neale made changes -
            Epic Link JENKINS-35737 [ 171801 ]
            michaelneale Michael Neale made changes -
            Sprint iapetus [ 216 ]
            michaelneale Michael Neale made changes -
            Priority Major [ 3 ] Critical [ 2 ]
            bwalding Ben Walding made changes -
            Description The BlueOcean main pipeline screen (https://ci.blueocean.io/blue/pipelines) has an event/websocket thing that is connected to the Jenkins server.

            On a regular basis this sends event from the backend to the frontend detailing things that are running.

            Event socket:
            https://ci.blueocean.io/sse-gateway/listen/jenkins-blueocean-core-js-1487311928759-80shtgg3w8q5hpelba9k9

            Event data:
            {noformat}
            open {"dispatcherId":"jenkins-blueocean-core-js-1487311928759-80shtgg3w8q5hpelba9k9","dispatcherInst":1238701885}
            16:15:00.445
            job {"jenkins_object_type":"org.jenkinsci.plugins.workflow.job.WorkflowRun","jenkins_event_uuid":"6c1358f1-f887-41bb-beb9-3228dda99df8","sse_subs_dispatcher_inst":"1238701885","job_run_status":"SUCCESS","job_name":"scratch/bwalding-alwaysBlue","jenkins_org":"jenkins","job_run_queueId":"5246","jenkins_object_name":"#2","blueocean_job_rest_url":"/blue/rest/organizations/jenkins/pipelines/scratch/pipelines/bwalding-alwaysBlue/","jenkins_object_id":"2","jenkins_event":"job_run_ended","sse_subs_dispatcher":"jenkins-blueocean-core-js-1487311928759-80shtgg3w8q5hpelba9k9","blueocean_job_pipeline_name":"scratch/bwalding-alwaysBlue","jenkins_object_url":"job/scratch/job/bwalding-alwaysBlue/2/","jenkins_channel":"job"}
            {noformat}

            Once the frontend receives those events, the frontend then makes a call to retrieve details about the run.

            https://ci.blueocean.io/blue/rest/organizations/jenkins/pipelines/scratch/pipelines/bwalding-alwaysBlue/runs/2/

            However the important thing to note is that the bwalding-alwaysBlue job is not visible on the front screen - so the frontend is querying the backend for details on jobs that will not change the state of the front end (afaik)



            In a large instance that is running a lot of jobs all the time, this could be problematic.
            The BlueOcean main pipeline screen (https://ci.blueocean.io/blue/pipelines) appears to be receiving events for running pipelines that are not visible, and then fetching data, creating more than expected traffic.

            On a regular basis this sends event from the backend to the frontend detailing things that are running.

            h4. To reproduce

            * Open /blue/pipelines/ in one tab
            * Run a job like bwalding-alwaysBlue from a classic screen in another tab
            * Note that /blue/pipelines/ receives events for this job and does requests.

            h4. Some details

            Event socket:
            https://ci.blueocean.io/sse-gateway/listen/jenkins-blueocean-core-js-1487311928759-80shtgg3w8q5hpelba9k9

            Event data:
            {noformat}
            open {"dispatcherId":"jenkins-blueocean-core-js-1487311928759-80shtgg3w8q5hpelba9k9","dispatcherInst":1238701885}
            16:15:00.445
            job {"jenkins_object_type":"org.jenkinsci.plugins.workflow.job.WorkflowRun","jenkins_event_uuid":"6c1358f1-f887-41bb-beb9-3228dda99df8","sse_subs_dispatcher_inst":"1238701885","job_run_status":"SUCCESS","job_name":"scratch/bwalding-alwaysBlue","jenkins_org":"jenkins","job_run_queueId":"5246","jenkins_object_name":"#2","blueocean_job_rest_url":"/blue/rest/organizations/jenkins/pipelines/scratch/pipelines/bwalding-alwaysBlue/","jenkins_object_id":"2","jenkins_event":"job_run_ended","sse_subs_dispatcher":"jenkins-blueocean-core-js-1487311928759-80shtgg3w8q5hpelba9k9","blueocean_job_pipeline_name":"scratch/bwalding-alwaysBlue","jenkins_object_url":"job/scratch/job/bwalding-alwaysBlue/2/","jenkins_channel":"job"}
            {noformat}

            Once the frontend receives those events, the frontend then makes a call to retrieve details about the run.

            https://ci.blueocean.io/blue/rest/organizations/jenkins/pipelines/scratch/pipelines/bwalding-alwaysBlue/runs/2/

            However the important thing to note is that the bwalding-alwaysBlue job is not visible on the front screen - so the frontend is querying the backend for details on jobs that will not change the state of the front end (afaik)



            In a large instance that is running a lot of jobs all the time, this could be problematic.
            michaelneale Michael Neale made changes -
            Rank Ranked higher
            michaelneale Michael Neale made changes -
            Priority Critical [ 2 ] Blocker [ 1 ]
            michaelneale Michael Neale made changes -
            Summary REGRESSION: A lot of unnecessary requests for pipeline run details and events A lot of unnecessary requests for pipeline run details and events
            michaelneale Michael Neale made changes -
            Priority Blocker [ 1 ] Minor [ 4 ]
            tfennelly Tom FENNELLY made changes -
            Issue Type Bug [ 1 ] Task [ 3 ]
            tfennelly Tom FENNELLY made changes -
            Summary A lot of unnecessary requests for pipeline run details and events Keep an eye on SSE events and resulting REST API calls
            tfennelly Tom FENNELLY made changes -
            Description The BlueOcean main pipeline screen (https://ci.blueocean.io/blue/pipelines) appears to be receiving events for running pipelines that are not visible, and then fetching data, creating more than expected traffic.

            On a regular basis this sends event from the backend to the frontend detailing things that are running.

            h4. To reproduce

            * Open /blue/pipelines/ in one tab
            * Run a job like bwalding-alwaysBlue from a classic screen in another tab
            * Note that /blue/pipelines/ receives events for this job and does requests.

            h4. Some details

            Event socket:
            https://ci.blueocean.io/sse-gateway/listen/jenkins-blueocean-core-js-1487311928759-80shtgg3w8q5hpelba9k9

            Event data:
            {noformat}
            open {"dispatcherId":"jenkins-blueocean-core-js-1487311928759-80shtgg3w8q5hpelba9k9","dispatcherInst":1238701885}
            16:15:00.445
            job {"jenkins_object_type":"org.jenkinsci.plugins.workflow.job.WorkflowRun","jenkins_event_uuid":"6c1358f1-f887-41bb-beb9-3228dda99df8","sse_subs_dispatcher_inst":"1238701885","job_run_status":"SUCCESS","job_name":"scratch/bwalding-alwaysBlue","jenkins_org":"jenkins","job_run_queueId":"5246","jenkins_object_name":"#2","blueocean_job_rest_url":"/blue/rest/organizations/jenkins/pipelines/scratch/pipelines/bwalding-alwaysBlue/","jenkins_object_id":"2","jenkins_event":"job_run_ended","sse_subs_dispatcher":"jenkins-blueocean-core-js-1487311928759-80shtgg3w8q5hpelba9k9","blueocean_job_pipeline_name":"scratch/bwalding-alwaysBlue","jenkins_object_url":"job/scratch/job/bwalding-alwaysBlue/2/","jenkins_channel":"job"}
            {noformat}

            Once the frontend receives those events, the frontend then makes a call to retrieve details about the run.

            https://ci.blueocean.io/blue/rest/organizations/jenkins/pipelines/scratch/pipelines/bwalding-alwaysBlue/runs/2/

            However the important thing to note is that the bwalding-alwaysBlue job is not visible on the front screen - so the frontend is querying the backend for details on jobs that will not change the state of the front end (afaik)



            In a large instance that is running a lot of jobs all the time, this could be problematic.
            This ticket started life as a bug, after observing what was thought to be a regression.

            The BlueOcean main pipeline screen (https://ci.blueocean.io/blue/pipelines) appears to be receiving events for running pipelines that are not visible, and then fetching data, creating more than expected traffic.

            On a regular basis this sends event from the backend to the frontend detailing things that are running.

            h4. To reproduce

            * Open /blue/pipelines/ in one tab
            * Run a job like bwalding-alwaysBlue from a classic screen in another tab
            * Note that /blue/pipelines/ receives events for this job and does requests.

            h4. Some details

            Event socket:
            https://ci.blueocean.io/sse-gateway/listen/jenkins-blueocean-core-js-1487311928759-80shtgg3w8q5hpelba9k9

            Event data:
            {noformat}
            open {"dispatcherId":"jenkins-blueocean-core-js-1487311928759-80shtgg3w8q5hpelba9k9","dispatcherInst":1238701885}
            16:15:00.445
            job {"jenkins_object_type":"org.jenkinsci.plugins.workflow.job.WorkflowRun","jenkins_event_uuid":"6c1358f1-f887-41bb-beb9-3228dda99df8","sse_subs_dispatcher_inst":"1238701885","job_run_status":"SUCCESS","job_name":"scratch/bwalding-alwaysBlue","jenkins_org":"jenkins","job_run_queueId":"5246","jenkins_object_name":"#2","blueocean_job_rest_url":"/blue/rest/organizations/jenkins/pipelines/scratch/pipelines/bwalding-alwaysBlue/","jenkins_object_id":"2","jenkins_event":"job_run_ended","sse_subs_dispatcher":"jenkins-blueocean-core-js-1487311928759-80shtgg3w8q5hpelba9k9","blueocean_job_pipeline_name":"scratch/bwalding-alwaysBlue","jenkins_object_url":"job/scratch/job/bwalding-alwaysBlue/2/","jenkins_channel":"job"}
            {noformat}

            Once the frontend receives those events, the frontend then makes a call to retrieve details about the run.

            https://ci.blueocean.io/blue/rest/organizations/jenkins/pipelines/scratch/pipelines/bwalding-alwaysBlue/runs/2/

            However the important thing to note is that the bwalding-alwaysBlue job is not visible on the front screen - so the frontend is querying the backend for details on jobs that will not change the state of the front end (afaik)



            In a large instance that is running a lot of jobs all the time, this could be problematic.
            tfennelly Tom FENNELLY made changes -
            Description This ticket started life as a bug, after observing what was thought to be a regression.

            The BlueOcean main pipeline screen (https://ci.blueocean.io/blue/pipelines) appears to be receiving events for running pipelines that are not visible, and then fetching data, creating more than expected traffic.

            On a regular basis this sends event from the backend to the frontend detailing things that are running.

            h4. To reproduce

            * Open /blue/pipelines/ in one tab
            * Run a job like bwalding-alwaysBlue from a classic screen in another tab
            * Note that /blue/pipelines/ receives events for this job and does requests.

            h4. Some details

            Event socket:
            https://ci.blueocean.io/sse-gateway/listen/jenkins-blueocean-core-js-1487311928759-80shtgg3w8q5hpelba9k9

            Event data:
            {noformat}
            open {"dispatcherId":"jenkins-blueocean-core-js-1487311928759-80shtgg3w8q5hpelba9k9","dispatcherInst":1238701885}
            16:15:00.445
            job {"jenkins_object_type":"org.jenkinsci.plugins.workflow.job.WorkflowRun","jenkins_event_uuid":"6c1358f1-f887-41bb-beb9-3228dda99df8","sse_subs_dispatcher_inst":"1238701885","job_run_status":"SUCCESS","job_name":"scratch/bwalding-alwaysBlue","jenkins_org":"jenkins","job_run_queueId":"5246","jenkins_object_name":"#2","blueocean_job_rest_url":"/blue/rest/organizations/jenkins/pipelines/scratch/pipelines/bwalding-alwaysBlue/","jenkins_object_id":"2","jenkins_event":"job_run_ended","sse_subs_dispatcher":"jenkins-blueocean-core-js-1487311928759-80shtgg3w8q5hpelba9k9","blueocean_job_pipeline_name":"scratch/bwalding-alwaysBlue","jenkins_object_url":"job/scratch/job/bwalding-alwaysBlue/2/","jenkins_channel":"job"}
            {noformat}

            Once the frontend receives those events, the frontend then makes a call to retrieve details about the run.

            https://ci.blueocean.io/blue/rest/organizations/jenkins/pipelines/scratch/pipelines/bwalding-alwaysBlue/runs/2/

            However the important thing to note is that the bwalding-alwaysBlue job is not visible on the front screen - so the frontend is querying the backend for details on jobs that will not change the state of the front end (afaik)



            In a large instance that is running a lot of jobs all the time, this could be problematic.
            +This ticket started life as a bug, after observing what was thought to be a regression.+

            The BlueOcean main pipeline screen (https://ci.blueocean.io/blue/pipelines) appears to be receiving events for running pipelines that are not visible, and then fetching data, creating more than expected traffic.

            On a regular basis this sends event from the backend to the frontend detailing things that are running.

            h4. To reproduce

            * Open /blue/pipelines/ in one tab
            * Run a job like bwalding-alwaysBlue from a classic screen in another tab
            * Note that /blue/pipelines/ receives events for this job and does requests.

            h4. Some details

            Event socket:
            https://ci.blueocean.io/sse-gateway/listen/jenkins-blueocean-core-js-1487311928759-80shtgg3w8q5hpelba9k9

            Event data:
            {noformat}
            open {"dispatcherId":"jenkins-blueocean-core-js-1487311928759-80shtgg3w8q5hpelba9k9","dispatcherInst":1238701885}
            16:15:00.445
            job {"jenkins_object_type":"org.jenkinsci.plugins.workflow.job.WorkflowRun","jenkins_event_uuid":"6c1358f1-f887-41bb-beb9-3228dda99df8","sse_subs_dispatcher_inst":"1238701885","job_run_status":"SUCCESS","job_name":"scratch/bwalding-alwaysBlue","jenkins_org":"jenkins","job_run_queueId":"5246","jenkins_object_name":"#2","blueocean_job_rest_url":"/blue/rest/organizations/jenkins/pipelines/scratch/pipelines/bwalding-alwaysBlue/","jenkins_object_id":"2","jenkins_event":"job_run_ended","sse_subs_dispatcher":"jenkins-blueocean-core-js-1487311928759-80shtgg3w8q5hpelba9k9","blueocean_job_pipeline_name":"scratch/bwalding-alwaysBlue","jenkins_object_url":"job/scratch/job/bwalding-alwaysBlue/2/","jenkins_channel":"job"}
            {noformat}

            Once the frontend receives those events, the frontend then makes a call to retrieve details about the run.

            https://ci.blueocean.io/blue/rest/organizations/jenkins/pipelines/scratch/pipelines/bwalding-alwaysBlue/runs/2/

            However the important thing to note is that the bwalding-alwaysBlue job is not visible on the front screen - so the frontend is querying the backend for details on jobs that will not change the state of the front end (afaik)



            In a large instance that is running a lot of jobs all the time, this could be problematic.
            tfennelly Tom FENNELLY made changes -
            Sprint iapetus [ 216 ] post-release [ 181 ]
            jamesdumay James Dumay made changes -
            Sprint post-release [ 181 ] 1.0 [ 221 ]
            jamesdumay James Dumay made changes -
            Priority Minor [ 4 ] Major [ 3 ]
            jamesdumay James Dumay made changes -
            Priority Major [ 3 ] Critical [ 2 ]
            jamesdumay James Dumay made changes -
            Rank Ranked higher
            jamesdumay James Dumay made changes -
            Rank Ranked higher
            michaelneale Michael Neale made changes -
            Summary Keep an eye on SSE events and resulting REST API calls Keep an eye on SSE events and resulting REST API calls - Investigate
            michaelneale Michael Neale made changes -
            Description +This ticket started life as a bug, after observing what was thought to be a regression.+

            The BlueOcean main pipeline screen (https://ci.blueocean.io/blue/pipelines) appears to be receiving events for running pipelines that are not visible, and then fetching data, creating more than expected traffic.

            On a regular basis this sends event from the backend to the frontend detailing things that are running.

            h4. To reproduce

            * Open /blue/pipelines/ in one tab
            * Run a job like bwalding-alwaysBlue from a classic screen in another tab
            * Note that /blue/pipelines/ receives events for this job and does requests.

            h4. Some details

            Event socket:
            https://ci.blueocean.io/sse-gateway/listen/jenkins-blueocean-core-js-1487311928759-80shtgg3w8q5hpelba9k9

            Event data:
            {noformat}
            open {"dispatcherId":"jenkins-blueocean-core-js-1487311928759-80shtgg3w8q5hpelba9k9","dispatcherInst":1238701885}
            16:15:00.445
            job {"jenkins_object_type":"org.jenkinsci.plugins.workflow.job.WorkflowRun","jenkins_event_uuid":"6c1358f1-f887-41bb-beb9-3228dda99df8","sse_subs_dispatcher_inst":"1238701885","job_run_status":"SUCCESS","job_name":"scratch/bwalding-alwaysBlue","jenkins_org":"jenkins","job_run_queueId":"5246","jenkins_object_name":"#2","blueocean_job_rest_url":"/blue/rest/organizations/jenkins/pipelines/scratch/pipelines/bwalding-alwaysBlue/","jenkins_object_id":"2","jenkins_event":"job_run_ended","sse_subs_dispatcher":"jenkins-blueocean-core-js-1487311928759-80shtgg3w8q5hpelba9k9","blueocean_job_pipeline_name":"scratch/bwalding-alwaysBlue","jenkins_object_url":"job/scratch/job/bwalding-alwaysBlue/2/","jenkins_channel":"job"}
            {noformat}

            Once the frontend receives those events, the frontend then makes a call to retrieve details about the run.

            https://ci.blueocean.io/blue/rest/organizations/jenkins/pipelines/scratch/pipelines/bwalding-alwaysBlue/runs/2/

            However the important thing to note is that the bwalding-alwaysBlue job is not visible on the front screen - so the frontend is querying the backend for details on jobs that will not change the state of the front end (afaik)



            In a large instance that is running a lot of jobs all the time, this could be problematic.
            +This ticket started life as a bug, after observing what was thought to be a regression.+

            The BlueOcean main pipeline screen (https://ci.blueocean.io/blue/pipelines) appears to be receiving events for running pipelines that are not visible, and then fetching data, creating more than expected traffic.

            On a regular basis this sends event from the backend to the frontend detailing things that are running.

            h4. To reproduce

            * Open /blue/pipelines/ in one tab
            * Run a job like bwalding-alwaysBlue from a classic screen in another tab : https://ci.blueocean.io/job/scratch/job/bwalding-alwaysBlue/configure
            * Note that /blue/pipelines/ receives events for this job and does requests.

            h4. Some details

            Event socket:
            https://ci.blueocean.io/sse-gateway/listen/jenkins-blueocean-core-js-1487311928759-80shtgg3w8q5hpelba9k9

            Event data:
            {noformat}
            open {"dispatcherId":"jenkins-blueocean-core-js-1487311928759-80shtgg3w8q5hpelba9k9","dispatcherInst":1238701885}
            16:15:00.445
            job {"jenkins_object_type":"org.jenkinsci.plugins.workflow.job.WorkflowRun","jenkins_event_uuid":"6c1358f1-f887-41bb-beb9-3228dda99df8","sse_subs_dispatcher_inst":"1238701885","job_run_status":"SUCCESS","job_name":"scratch/bwalding-alwaysBlue","jenkins_org":"jenkins","job_run_queueId":"5246","jenkins_object_name":"#2","blueocean_job_rest_url":"/blue/rest/organizations/jenkins/pipelines/scratch/pipelines/bwalding-alwaysBlue/","jenkins_object_id":"2","jenkins_event":"job_run_ended","sse_subs_dispatcher":"jenkins-blueocean-core-js-1487311928759-80shtgg3w8q5hpelba9k9","blueocean_job_pipeline_name":"scratch/bwalding-alwaysBlue","jenkins_object_url":"job/scratch/job/bwalding-alwaysBlue/2/","jenkins_channel":"job"}
            {noformat}

            Once the frontend receives those events, the frontend then makes a call to retrieve details about the run.

            https://ci.blueocean.io/blue/rest/organizations/jenkins/pipelines/scratch/pipelines/bwalding-alwaysBlue/runs/2/

            However the important thing to note is that the bwalding-alwaysBlue job is not visible on the front screen - so the frontend is querying the backend for details on jobs that will not change the state of the front end (afaik)



            In a large instance that is running a lot of jobs all the time, this could be problematic.
            michaelneale Michael Neale made changes -
            Summary Keep an eye on SSE events and resulting REST API calls - Investigate Don't fetch run data on an event if it not already in the store
            michaelneale Michael Neale made changes -
            Description +This ticket started life as a bug, after observing what was thought to be a regression.+

            The BlueOcean main pipeline screen (https://ci.blueocean.io/blue/pipelines) appears to be receiving events for running pipelines that are not visible, and then fetching data, creating more than expected traffic.

            On a regular basis this sends event from the backend to the frontend detailing things that are running.

            h4. To reproduce

            * Open /blue/pipelines/ in one tab
            * Run a job like bwalding-alwaysBlue from a classic screen in another tab : https://ci.blueocean.io/job/scratch/job/bwalding-alwaysBlue/configure
            * Note that /blue/pipelines/ receives events for this job and does requests.

            h4. Some details

            Event socket:
            https://ci.blueocean.io/sse-gateway/listen/jenkins-blueocean-core-js-1487311928759-80shtgg3w8q5hpelba9k9

            Event data:
            {noformat}
            open {"dispatcherId":"jenkins-blueocean-core-js-1487311928759-80shtgg3w8q5hpelba9k9","dispatcherInst":1238701885}
            16:15:00.445
            job {"jenkins_object_type":"org.jenkinsci.plugins.workflow.job.WorkflowRun","jenkins_event_uuid":"6c1358f1-f887-41bb-beb9-3228dda99df8","sse_subs_dispatcher_inst":"1238701885","job_run_status":"SUCCESS","job_name":"scratch/bwalding-alwaysBlue","jenkins_org":"jenkins","job_run_queueId":"5246","jenkins_object_name":"#2","blueocean_job_rest_url":"/blue/rest/organizations/jenkins/pipelines/scratch/pipelines/bwalding-alwaysBlue/","jenkins_object_id":"2","jenkins_event":"job_run_ended","sse_subs_dispatcher":"jenkins-blueocean-core-js-1487311928759-80shtgg3w8q5hpelba9k9","blueocean_job_pipeline_name":"scratch/bwalding-alwaysBlue","jenkins_object_url":"job/scratch/job/bwalding-alwaysBlue/2/","jenkins_channel":"job"}
            {noformat}

            Once the frontend receives those events, the frontend then makes a call to retrieve details about the run.

            https://ci.blueocean.io/blue/rest/organizations/jenkins/pipelines/scratch/pipelines/bwalding-alwaysBlue/runs/2/

            However the important thing to note is that the bwalding-alwaysBlue job is not visible on the front screen - so the frontend is querying the backend for details on jobs that will not change the state of the front end (afaik)



            In a large instance that is running a lot of jobs all the time, this could be problematic.
            +This ticket started life as a bug, after observing what was thought to be a regression.+

            The BlueOcean main pipeline screen (https://ci.blueocean.io/blue/pipelines) appears to be receiving events for running pipelines that are not visible, and then fetching data, creating more than expected traffic.

            On a regular basis this sends event from the backend to the frontend detailing things that are running.

            h4. To reproduce

            * Open /blue/pipelines/ in one tab
            * Run a job like bwalding-alwaysBlue from a classic screen in another tab : https://ci.blueocean.io/job/scratch/job/bwalding-alwaysBlue/configure
            * Note that /blue/pipelines/ receives events for this job and does requests.

            Expected behavior:

            * Should not fetch the run data if the job isn't even in the store.

            h4. Some details

            Event socket:
            https://ci.blueocean.io/sse-gateway/listen/jenkins-blueocean-core-js-1487311928759-80shtgg3w8q5hpelba9k9

            Event data:
            {noformat}
            open {"dispatcherId":"jenkins-blueocean-core-js-1487311928759-80shtgg3w8q5hpelba9k9","dispatcherInst":1238701885}
            16:15:00.445
            job {"jenkins_object_type":"org.jenkinsci.plugins.workflow.job.WorkflowRun","jenkins_event_uuid":"6c1358f1-f887-41bb-beb9-3228dda99df8","sse_subs_dispatcher_inst":"1238701885","job_run_status":"SUCCESS","job_name":"scratch/bwalding-alwaysBlue","jenkins_org":"jenkins","job_run_queueId":"5246","jenkins_object_name":"#2","blueocean_job_rest_url":"/blue/rest/organizations/jenkins/pipelines/scratch/pipelines/bwalding-alwaysBlue/","jenkins_object_id":"2","jenkins_event":"job_run_ended","sse_subs_dispatcher":"jenkins-blueocean-core-js-1487311928759-80shtgg3w8q5hpelba9k9","blueocean_job_pipeline_name":"scratch/bwalding-alwaysBlue","jenkins_object_url":"job/scratch/job/bwalding-alwaysBlue/2/","jenkins_channel":"job"}
            {noformat}

            Once the frontend receives those events, the frontend then makes a call to retrieve details about the run.

            https://ci.blueocean.io/blue/rest/organizations/jenkins/pipelines/scratch/pipelines/bwalding-alwaysBlue/runs/2/

            However the important thing to note is that the bwalding-alwaysBlue job is not visible on the front screen - so the frontend is querying the backend for details on jobs that will not change the state of the front end (afaik)



            In a large instance that is running a lot of jobs all the time, this could be problematic.
            tfennelly Tom FENNELLY made changes -
            Link This issue is related to JENKINS-42196 [ JENKINS-42196 ]
            tfennelly Tom FENNELLY made changes -
            Status Open [ 1 ] In Progress [ 3 ]
            tfennelly Tom FENNELLY made changes -
            Status In Progress [ 3 ] Open [ 1 ]
            jamesdumay James Dumay made changes -
            Priority Critical [ 2 ] Major [ 3 ]
            michaelneale Michael Neale made changes -
            Priority Major [ 3 ] Critical [ 2 ]
            tfennelly Tom FENNELLY made changes -
            Status Open [ 1 ] In Progress [ 3 ]
            tfennelly Tom FENNELLY made changes -
            Status In Progress [ 3 ] In Review [ 10005 ]
            tfennelly Tom FENNELLY made changes -
            Status In Review [ 10005 ] In Progress [ 3 ]
            tfennelly Tom FENNELLY made changes -
            Status In Progress [ 3 ] Open [ 1 ]
            tfennelly Tom FENNELLY made changes -
            Sprint 1.0 [ 221 ] 1.1 [ 251 ]
            tfennelly Tom FENNELLY made changes -
            Priority Critical [ 2 ] Minor [ 4 ]
            jamesdumay James Dumay made changes -
            Sprint Blue Ocean up next [ 251 ]
            jamesdumay James Dumay made changes -
            Rank Ranked higher
            jamesdumay James Dumay made changes -
            Epic Link JENKINS-35737 [ 171801 ] JENKINS-37957 [ 174099 ]

              People

              Assignee:
              tfennelly Tom FENNELLY
              Reporter:
              bwalding Ben Walding
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

                Dates

                Created:
                Updated: