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

new item categories served without cache expiration

    XMLWordPrintable

    Details

    • Similar Issues:

      Description

      SInce the introduction of the revamped "new Item" page the list of items that can be populated via an XMLHttpRequest.

      However this is a bad thing to do as the list should not be considered static.

      OSS can add to the list if a plugin is installed.
      Third party extensions can contribute items (and even remove items from the list) dynamically.

      This causes a big issue with IE as by default IE legitimatley caches the responses of an XMLHttpRequest unless told otherwise.

      Workaround is to force a reload after cleaning the cache - but this is bad UX.

      NOTE: there are probably other places in jenkins core that handle XMLHttpRequest requests that are not adding correct cache control headers - this should probably be investigated too.

      Found with IE 11 on windows 10 but likely affects all versions of IE 11 and possibly (but untested Edge)

      Steps to reproduce:

      • Load the New Item page in your IE11 browser
      • Install a new plugin which provides a new Item type
      • Navigate to the new Item page again in your browser

      Observed Behavior:

      • You will not see the new item listed

      Expected Behavior:

      • The new item should show up in the list without a special action or refresh by the user

        Attachments

          Activity

          teilo James Nord created issue -
          Hide
          teilo James Nord added a comment - - edited

          request headers as follows (Cookie stripped):

          Accept: */*
          Accept-Encoding: gzip, deflate
          Accept-Language: en-GB
          Connection: Keep-Alive
          Host: localhost:8080
          Referer: http://localhost:8080/job/folder/job/subfolder/newJob
          User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; Touch; rv:11.0) like Gecko
          X-Requested-With: XMLHttpRequest
          

          response headers as follows:

          Content-Encoding: gzip
          Content-Length: 537
          Content-Type: application/json; charset=UTF-8
          Date: Wed, 26 Apr 2017 09:48:41 GMT
          Server: Jetty(9.2.z-SNAPSHOT)
          X-Content-Type-Options: nosniff
          
          Show
          teilo James Nord added a comment - - edited request headers as follows (Cookie stripped): Accept: */* Accept-Encoding: gzip, deflate Accept-Language: en-GB Connection: Keep-Alive Host: localhost:8080 Referer: http://localhost:8080/job/folder/job/subfolder/newJob User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; Touch; rv:11.0) like Gecko X-Requested-With: XMLHttpRequest response headers as follows: Content-Encoding: gzip Content-Length: 537 Content-Type: application/json; charset=UTF-8 Date: Wed, 26 Apr 2017 09:48:41 GMT Server: Jetty(9.2.z-SNAPSHOT) X-Content-Type-Options: nosniff
          teilo James Nord made changes -
          Field Original Value New Value
          Description SInce the introduction of the revamped "new Item" page the list of items that can be populated via an {{XMLHttpRequest}}.

          However this is a bad thing to do as the list should not be considered static.

          OSS can add to the list if a plugin is installed.
          Third party extensions can contribute items (and even remove items from the list) dynamically.

          This causes a big issue with IE as by default IE legitimatley caches the responses of an {{XMLHttpRequest}} unless told otherwise.

          Workaround is to force a reload after cleaning the cache - but this is bad UX.

          NOTE: there are probably other places in jenkins core that handle {{XMLHttpRequest}} requests that are not adding correct cache control headers - this should probably be investigated too.
          SInce the introduction of the revamped "new Item" page the list of items that can be populated via an {{XMLHttpRequest}}.

          However this is a bad thing to do as the list should not be considered static.

          OSS can add to the list if a plugin is installed.
          Third party extensions can contribute items (and even remove items from the list) dynamically.

          This causes a big issue with IE as by default IE legitimatley caches the responses of an {{XMLHttpRequest}} unless told otherwise.

          Workaround is to force a reload after cleaning the cache - but this is bad UX.

          NOTE: there are probably other places in jenkins core that handle {{XMLHttpRequest}} requests that are not adding correct cache control headers - this should probably be investigated too.

          Found with IE 11 on windows 10 but likely affects all versions of IE 11 and possibly (but untested Edge)
          teilo James Nord made changes -
          Labels UX http regression
          oleg_nenashev Oleg Nenashev made changes -
          Environment Jenkins 2.0+
          recena Manuel Recena Soto made changes -
          Assignee Manuel Recena Soto [ recena ]
          recena Manuel Recena Soto made changes -
          Labels UX http regression regression
          Hide
          recena Manuel Recena Soto added a comment -

          James Nord, this is not a UX issue but a simple bug related with IE.

          Show
          recena Manuel Recena Soto added a comment - James Nord , this is not a UX issue but a simple bug related with IE.
          Hide
          teilo James Nord added a comment -

          It is a bug that affects the user experience when the user uses IE.
          UX is surely for all user experience bugs not just the interaction flow/ layout?
          Is there a definition of all the labels meanings on the wiki or somewhere, I could not find it

          Show
          teilo James Nord added a comment - It is a bug that affects the user experience when the user uses IE. UX is surely for all user experience bugs not just the interaction flow/ layout? Is there a definition of all the labels meanings on the wiki or somewhere, I could not find it
          recampbell Ryan Campbell made changes -
          Description SInce the introduction of the revamped "new Item" page the list of items that can be populated via an {{XMLHttpRequest}}.

          However this is a bad thing to do as the list should not be considered static.

          OSS can add to the list if a plugin is installed.
          Third party extensions can contribute items (and even remove items from the list) dynamically.

          This causes a big issue with IE as by default IE legitimatley caches the responses of an {{XMLHttpRequest}} unless told otherwise.

          Workaround is to force a reload after cleaning the cache - but this is bad UX.

          NOTE: there are probably other places in jenkins core that handle {{XMLHttpRequest}} requests that are not adding correct cache control headers - this should probably be investigated too.

          Found with IE 11 on windows 10 but likely affects all versions of IE 11 and possibly (but untested Edge)
          SInce the introduction of the revamped "new Item" page the list of items that can be populated via an {{XMLHttpRequest}}.

          However this is a bad thing to do as the list should not be considered static.

          OSS can add to the list if a plugin is installed.
          Third party extensions can contribute items (and even remove items from the list) dynamically.

          This causes a big issue with IE as by default IE legitimatley caches the responses of an {{XMLHttpRequest}} unless told otherwise.

          Workaround is to force a reload after cleaning the cache - but this is bad UX.

          NOTE: there are probably other places in jenkins core that handle {{XMLHttpRequest}} requests that are not adding correct cache control headers - this should probably be investigated too.

          Found with IE 11 on windows 10 but likely affects all versions of IE 11 and possibly (but untested Edge)

          Steps to reproduce:
          * Load the New Item page in your IE11 browser
          * Install a new plugin which provides a new Item type
          * Navigate to the new Item page again in your browser
          *

          Observed Behavior:
          * You will not see the new item listed

          Expected Behavior:
          * The new item should show up in the list without a special action or refresh by the user
          oleg_nenashev Oleg Nenashev made changes -
          Assignee Manuel Recena Soto [ recena ] Josiah Haswell [ jhaswell ]
          oleg_nenashev Oleg Nenashev made changes -
          Status Open [ 1 ] In Progress [ 3 ]
          recampbell Ryan Campbell made changes -
          Remote Link This issue links to "jenkins#2973 (Web Link)" [ 17433 ]
          Hide
          scm_issue_link SCM/JIRA link daemon added a comment -

          Code changed in jenkins
          User: Josiah Haswell
          Path:
          core/src/main/java/hudson/model/View.java
          test/src/test/java/hudson/model/ViewTest.java
          http://jenkins-ci.org/commit/jenkins/34bf393255bb603bb3b0fb921a41fc3916d16f42
          Log:
          [FIX JENKINS-43848] - Lack of cache-invalidation headers results in stale item list (#2973)

          • Saving progress for review
          • Adding licenses
          • Adding integration test for headers
          • Removing proposal for refactoring to method objects
          • Removing whitespace changeswq
          • Fixing test
          Show
          scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: Josiah Haswell Path: core/src/main/java/hudson/model/View.java test/src/test/java/hudson/model/ViewTest.java http://jenkins-ci.org/commit/jenkins/34bf393255bb603bb3b0fb921a41fc3916d16f42 Log: [FIX JENKINS-43848] - Lack of cache-invalidation headers results in stale item list (#2973) Saving progress for review Adding licenses Adding integration test for headers Removing proposal for refactoring to method objects Removing whitespace changeswq Fixing test
          scm_issue_link SCM/JIRA link daemon made changes -
          Resolution Fixed [ 1 ]
          Status In Progress [ 3 ] Resolved [ 5 ]
          Hide
          oleg_nenashev Oleg Nenashev added a comment -

          The fix has been integrated towards Jenkins 2.74. Marking it as LTS Candidate

          Show
          oleg_nenashev Oleg Nenashev added a comment - The fix has been integrated towards Jenkins 2.74. Marking it as LTS Candidate
          oleg_nenashev Oleg Nenashev made changes -
          Labels regression lts-candidate regression
          olivergondza Oliver Gond┼ża made changes -
          Labels lts-candidate regression 2.73.1-fixed regression
          Hide
          scm_issue_link SCM/JIRA link daemon added a comment -

          Code changed in jenkins
          User: Josiah Haswell
          Path:
          core/src/main/java/hudson/model/View.java
          test/src/test/java/hudson/model/ViewTest.java
          http://jenkins-ci.org/commit/jenkins/9a8fdb9ac32702552f156d2898dffe2e67402c46
          Log:
          [FIX JENKINS-43848] - Lack of cache-invalidation headers results in stale item list (#2973)

          • Saving progress for review
          • Adding licenses
          • Adding integration test for headers
          • Removing proposal for refactoring to method objects
          • Removing whitespace changeswq
          • Fixing test

          (cherry picked from commit 34bf393255bb603bb3b0fb921a41fc3916d16f42)

          Show
          scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: Josiah Haswell Path: core/src/main/java/hudson/model/View.java test/src/test/java/hudson/model/ViewTest.java http://jenkins-ci.org/commit/jenkins/9a8fdb9ac32702552f156d2898dffe2e67402c46 Log: [FIX JENKINS-43848] - Lack of cache-invalidation headers results in stale item list (#2973) Saving progress for review Adding licenses Adding integration test for headers Removing proposal for refactoring to method objects Removing whitespace changeswq Fixing test (cherry picked from commit 34bf393255bb603bb3b0fb921a41fc3916d16f42)
          jamesdumay James Dumay made changes -
          Remote Link This issue links to "CloudBees Internal OSS-2307 (Web Link)" [ 18349 ]
          jamesdumay James Dumay made changes -
          Remote Link This issue links to "CloudBees Internal OSS-2208 (Web Link)" [ 18389 ]

            People

            Assignee:
            jhaswell Josiah Haswell
            Reporter:
            teilo James Nord
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved: