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

Views with status filters lost upgrading from 2.238 to 2.240

    • 2.258

      Upgraded using apt (running on ubuntu bionic).

      I was able to recover the config file from a support plugin archive, and ungarble it and try again and these items are consistently being eaten.

          [JENKINS-62661] Views with status filters lost upgrading from 2.238 to 2.240

          Mark Waite added a comment -

          We just recently added an entry to the Jenkins 2.249.1 upgrade guide to describe the statusFilter transition in Jenkins 2.249.1 LTS. I'm certainly open to more descriptions or better descriptions of techniques for the upgrade.

          Mark Waite added a comment - We just recently added an entry to the Jenkins 2.249.1 upgrade guide to describe the statusFilter transition in Jenkins 2.249.1 LTS. I'm certainly open to more descriptions or better descriptions of techniques for the upgrade.

          Josh Soref added a comment -

          markewaite: at the very least you have to mention the non declarative case. Crashing on startup isn't a big deal, you search for the error and fix things. Dataloss after upgrade is much worse.

          Personally, I'd suggest adding code on the LTS branch to perform migration at launch.

          Josh Soref added a comment - markewaite : at the very least you have to mention the non declarative case. Crashing on startup isn't a big deal, you search for the error and fix things. Dataloss after upgrade is much worse. Personally, I'd suggest adding code on the LTS branch to perform migration at launch.

          Mark Waite added a comment -

          Thanks jsoref. I hadn't performed the test myself to check the problem as described by Daniel. I wrote the upgrade guide based on my experience as a configuration as code user. My examples were unharmed by removing the statusFilter from the view definition (or at least I didn't detect the harm). I'll need to experiment more to create a better description of the upgrade impact. Daniel's description seems like the right technique - define a 2.235.5 view (JCasC or otherwise) that only uses a status filter and no other setting, then confirm that view is deleted on upgrade to 2.249.1.

          Mark Waite added a comment - Thanks jsoref . I hadn't performed the test myself to check the problem as described by Daniel. I wrote the upgrade guide based on my experience as a configuration as code user. My examples were unharmed by removing the statusFilter from the view definition (or at least I didn't detect the harm). I'll need to experiment more to create a better description of the upgrade impact. Daniel's description seems like the right technique - define a 2.235.5 view (JCasC or otherwise) that only uses a status filter and no other setting, then confirm that view is deleted on upgrade to 2.249.1.

          Daniel Beck added a comment -

          This is a bug in the (generally legitimate) data migration. It could be noted as a known issue, but primarily we need a fix towards 2.249.2.

          Daniel Beck added a comment - This is a bug in the (generally legitimate) data migration. It could be noted as a known issue, but primarily we need a fix towards 2.249.2.

          Peter Wiseman added a comment -

          When upgrading, I typically upgrade to the latest weekly after reviewing known issues.  I have multiple jenkins instances that typically only get upgraded once a year.  Upgrade notes aren't sufficient for my case, which I presume mirrors many other use cases.  Agree with danielbeck that a change introducing data loss is a bug.

          Peter Wiseman added a comment - When upgrading, I typically upgrade to the latest weekly after reviewing known issues.  I have multiple jenkins instances that typically only get upgraded once a year.  Upgrade notes aren't sufficient for my case, which I presume mirrors many other use cases.  Agree with danielbeck that a change introducing data loss is a bug.

          Mark Waite added a comment -

          Thanks pwiseman. I agree that the upgrade guide is not sufficient. We need a fix, preferably in Jenkins 2.249.2.

          Mark Waite added a comment - Thanks pwiseman . I agree that the upgrade guide is not sufficient. We need a fix, preferably in Jenkins 2.249.2.

          Peter Wiseman added a comment -

          The status has changed to Resolution and tagged as fixed in 2.258.  I've re-tested an upgrade from 2.238 to 2.258 and the problem is still present (the views go missing).  What was the RESOLUTION?

          Peter Wiseman added a comment - The status has changed to Resolution and tagged as fixed in 2.258.  I've re-tested an upgrade from 2.238 to 2.258 and the problem is still present (the views go missing).  What was the RESOLUTION?

          Mark Waite added a comment -

          That sounds like the fix provided in PR-4466 did not resolve the issue you are seeing. The fix was a code change in that pull request that was intended to handle the upgrade.

          Mark Waite added a comment - That sounds like the fix provided in PR-4466 did not resolve the issue you are seeing. The fix was a code change in that pull request that was intended to handle the upgrade.

          Mark Waite added a comment - - edited

          pwiseman I suspect more details will be required to duplicate the problem you're seeing. I was unable to duplicate the problem with 2.258, while I was able to duplicate the problem with 2.257. Steps I took:

          Jenkins 2.238

          1. Install Jenkins 2.238 with no plugins
          2. Define a job 'enabled-job' that is an enabled Freestyle job and run it several times
          3. Define a job 'disabled-job' this is a disabled Freestyle job
          4. Define a view 'Enabled' that uses the job status filter to show only enabled jobs, recursing in subfolders, matching the regular expression '.*'
          5. Define a view 'Disabled' that uses the job status filter to show only disabled jobs, recursing in subfolders, matching the regular expression '.*'
          6. Confirm that the view 'Enabled' shows only the enabled job and the view 'Disabled' shows only the disabled job
          7. Stop Jenkins 2.238
          8. Create a backup of the Jenkins home directory for reuse

          Jenkins 2.258

          1. Restore the Jenkins home directory backup from Jenkins 2.238
          2. Start Jenkins 2.258
          3. Confirm that the 'Disabled' and 'Enabled' views are visible in Jenkins 2.258

          Jenkins 2.257

          1. Restore the Jenkins home directory backup from Jenkins 2.238
          2. Start Jenkins 2.257
          3. Confirm that the 'Disabled' and 'Enabled' views are lost in Jenkins 2.257

          If someone needs a copy of the Jenkins home directory backup, I placed it temporarily at https://home.markwaite.net/~mwaite/jenkins-2.238.zip. The login user name is butler with the password butler.

          Mark Waite added a comment - - edited pwiseman I suspect more details will be required to duplicate the problem you're seeing. I was unable to duplicate the problem with 2.258, while I was able to duplicate the problem with 2.257. Steps I took: Jenkins 2.238 Install Jenkins 2.238 with no plugins Define a job 'enabled-job' that is an enabled Freestyle job and run it several times Define a job 'disabled-job' this is a disabled Freestyle job Define a view 'Enabled' that uses the job status filter to show only enabled jobs, recursing in subfolders, matching the regular expression '.*' Define a view 'Disabled' that uses the job status filter to show only disabled jobs, recursing in subfolders, matching the regular expression '.*' Confirm that the view 'Enabled' shows only the enabled job and the view 'Disabled' shows only the disabled job Stop Jenkins 2.238 Create a backup of the Jenkins home directory for reuse Jenkins 2.258 Restore the Jenkins home directory backup from Jenkins 2.238 Start Jenkins 2.258 Confirm that the 'Disabled' and 'Enabled' views are visible in Jenkins 2.258 Jenkins 2.257 Restore the Jenkins home directory backup from Jenkins 2.238 Start Jenkins 2.257 Confirm that the 'Disabled' and 'Enabled' views are lost in Jenkins 2.257 If someone needs a copy of the Jenkins home directory backup, I placed it temporarily at https://home.markwaite.net/~mwaite/jenkins-2.238.zip . The login user name is butler with the password butler .

          Peter Wiseman added a comment -

          markewaite Thanks for detailing the test (that helped), and sorry to have required you to re-test.  I found my problem.  I tested too quickly and failed to notice that the views do not appear on the main page unless there is at least one job.  I was looking at the Welcome screen, and thinking there were no views.  I failed to spot this pre-upgrade.  So all is good.  Many thanks for everyone's work on this.

          Peter Wiseman added a comment - markewaite Thanks for detailing the test (that helped), and sorry to have required you to re-test.  I found my problem.  I tested too quickly and failed to notice that the views do not appear on the main page unless there is at least one job.  I was looking at the Welcome screen, and thinking there were no views.  I failed to spot this pre-upgrade.  So all is good.  Many thanks for everyone's work on this.

            Unassigned Unassigned
            jsoref Josh Soref
            Votes:
            2 Vote for this issue
            Watchers:
            9 Start watching this issue

              Created:
              Updated:
              Resolved: