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

          Josh Soref created issue -
          Josh Soref made changes -
          Attachment New: config.xml.garbled.diff [ 51600 ]

          Josh Soref added a comment -

          I have been able to manually re-create these objects from the gui...

          Josh Soref added a comment - I have been able to manually re-create these objects from the gui...

          Daniel Beck added a comment -

          Were any warnings logged, or did the "old data monitor" trigger and complain about unloadable data? If so, what specifically?

          Daniel Beck added a comment - Were any warnings logged, or did the "old data monitor" trigger and complain about unloadable data? If so, what specifically?
          Daniel Beck made changes -
          Labels New: regression
          Daniel Beck made changes -
          Priority Original: Minor [ 4 ] New: Major [ 3 ]

          Josh Soref added a comment -

          I didn't see/couldn't find any.

           

          And I'm used to seeing them.

          Josh Soref added a comment - I didn't see/couldn't find any.   And I'm used to seeing them.

          I seem to have a similar issue, all my ListViews where statusFilter is in use are "missing" and unreadable data:

          ConversionException: Could not call hudson.model.ListView.readResolve() : null : Could not call hudson.model.ListView.readResolve() : null
          ---- Debugging information ----
          message             : Could not call hudson.model.ListView.readResolve() : null
          cause-exception     : com.thoughtworks.xstream.converters.reflection.ObjectAccessException
          cause-message       : Could not call hudson.model.ListView.readResolve() : null
          class               : hudson.model.ListView
          required-type       : hudson.model.ListView
          converter-type      : hudson.util.RobustReflectionConverter
          path                : /com.cloudbees.hudson.plugins.folder.Folder/folderViews/views/hudson.model.ListView
          line number         : 56
          -------------------------------
          

          It seems I can force the error with the JobDSL plugin using a view which tries to set a statusFilter:

          Caused by: java.io.IOException: Unable to read
          	at hudson.model.View.createViewFromXML(View.java:1400)
          	at javaposse.jobdsl.plugin.JenkinsJobManagement.createOrUpdateView(JenkinsJobManagement.java:183)
          	... 11 more
          Caused by: com.thoughtworks.xstream.converters.ConversionException: Could not call hudson.model.ListView.readResolve() : null : Could not call hudson.model.ListView.readResolve() : null
          ---- Debugging information ----
          message             : Could not call hudson.model.ListView.readResolve() : null
          cause-exception     : com.thoughtworks.xstream.converters.reflection.ObjectAccessException
          cause-message       : Could not call hudson.model.ListView.readResolve() : null
          class               : hudson.model.ListView
          required-type       : hudson.model.ListView
          converter-type      : hudson.util.RobustReflectionConverter
          path                : /hudson.model.ListView
          line number         : 43
          version             : not available
          -------------------------------
          	at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:79)
          	at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65)
          	at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
          	at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50)
          	at com.thoughtworks.xstream.core.TreeUnmarshaller.start(TreeUnmarshaller.java:134)
          	at com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.unmarshal(AbstractTreeMarshallingStrategy.java:32)
          	at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1189)
          	at hudson.util.XStream2.unmarshal(XStream2.java:161)
          	at hudson.util.XStream2.unmarshal(XStream2.java:132)
          	at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1173)
          	at com.thoughtworks.xstream.XStream.fromXML(XStream.java:1053)
          	at hudson.model.View.createViewFromXML(View.java:1395)
          	... 12 more
          Caused by: com.thoughtworks.xstream.converters.reflection.ObjectAccessException: Could not call hudson.model.ListView.readResolve() : null
          	at com.thoughtworks.xstream.converters.reflection.SerializationMethodInvoker.callReadResolve(SerializationMethodInvoker.java:72)
          	at hudson.util.RobustReflectionConverter.unmarshal(RobustReflectionConverter.java:270)
          	at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
          	... 23 more
          Caused by: java.lang.UnsupportedOperationException
          	at java.util.AbstractList.add(AbstractList.java:148)
          	at hudson.model.ListView.readResolve(ListView.java:153)
          	at com.thoughtworks.xstream.converters.reflection.SerializationMethodInvoker.callReadResolve(SerializationMethodInvoker.java:66)
          	... 25 more
          

          (This is with Jenkins 2.249.1)

          Tobias Gruetzmacher added a comment - I seem to have a similar issue, all my ListViews where statusFilter is in use are "missing" and unreadable data: ConversionException: Could not call hudson.model.ListView.readResolve() : null : Could not call hudson.model.ListView.readResolve() : null ---- Debugging information ---- message : Could not call hudson.model.ListView.readResolve() : null cause-exception : com.thoughtworks.xstream.converters.reflection.ObjectAccessException cause-message : Could not call hudson.model.ListView.readResolve() : null class : hudson.model.ListView required-type : hudson.model.ListView converter-type : hudson.util.RobustReflectionConverter path : /com.cloudbees.hudson.plugins.folder.Folder/folderViews/views/hudson.model.ListView line number : 56 ------------------------------- It seems I can force the error with the JobDSL plugin using a view which tries to set a statusFilter: Caused by: java.io.IOException: Unable to read at hudson.model.View.createViewFromXML(View.java:1400) at javaposse.jobdsl.plugin.JenkinsJobManagement.createOrUpdateView(JenkinsJobManagement.java:183) ... 11 more Caused by: com.thoughtworks.xstream.converters.ConversionException: Could not call hudson.model.ListView.readResolve() : null : Could not call hudson.model.ListView.readResolve() : null ---- Debugging information ---- message : Could not call hudson.model.ListView.readResolve() : null cause-exception : com.thoughtworks.xstream.converters.reflection.ObjectAccessException cause-message : Could not call hudson.model.ListView.readResolve() : null class : hudson.model.ListView required-type : hudson.model.ListView converter-type : hudson.util.RobustReflectionConverter path : /hudson.model.ListView line number : 43 version : not available ------------------------------- at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:79) at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65) at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66) at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50) at com.thoughtworks.xstream.core.TreeUnmarshaller.start(TreeUnmarshaller.java:134) at com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.unmarshal(AbstractTreeMarshallingStrategy.java:32) at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1189) at hudson.util.XStream2.unmarshal(XStream2.java:161) at hudson.util.XStream2.unmarshal(XStream2.java:132) at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1173) at com.thoughtworks.xstream.XStream.fromXML(XStream.java:1053) at hudson.model.View.createViewFromXML(View.java:1395) ... 12 more Caused by: com.thoughtworks.xstream.converters.reflection.ObjectAccessException: Could not call hudson.model.ListView.readResolve() : null at com.thoughtworks.xstream.converters.reflection.SerializationMethodInvoker.callReadResolve(SerializationMethodInvoker.java:72) at hudson.util.RobustReflectionConverter.unmarshal(RobustReflectionConverter.java:270) at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72) ... 23 more Caused by: java.lang.UnsupportedOperationException at java.util.AbstractList.add(AbstractList.java:148) at hudson.model.ListView.readResolve(ListView.java:153) at com.thoughtworks.xstream.converters.reflection.SerializationMethodInvoker.callReadResolve(SerializationMethodInvoker.java:66) ... 25 more (This is with Jenkins 2.249.1)

          Daniel Beck added a comment -

          tgr That looks promising. Do you have the XML that the plugin attempts to submit there?

          Daniel Beck added a comment - tgr That looks promising. Do you have the XML that the plugin attempts to submit there?

          The minimal JobDSL script provoking this error is:

          import javaposse.jobdsl.dsl.views.ListView
          
          listView('test') {
            statusFilter ListView.StatusFilter.ENABLED
          }
          

          which produces this XML:

          <hudson.model.ListView>
              <filterExecutors>false</filterExecutors>
              <filterQueue>false</filterQueue>
              <properties class='hudson.model.View$PropertyList'></properties>
              <jobNames class='tree-set'>
                  <comparator class='hudson.util.CaseInsensitiveComparator'></comparator>
              </jobNames>
              <jobFilters></jobFilters>
              <columns></columns>
              <statusFilter>true</statusFilter>
          </hudson.model.ListView>
          

          Ah: jobFilters is a DescribableList, which doesn't implement public void add(int index, E element) ...

          Tobias Gruetzmacher added a comment - The minimal JobDSL script provoking this error is: import javaposse.jobdsl.dsl.views.ListView listView( 'test' ) { statusFilter ListView.StatusFilter.ENABLED } which produces this XML: <hudson.model.ListView> <filterExecutors> false </filterExecutors> <filterQueue> false </filterQueue> <properties class= 'hudson.model.View$PropertyList' > </properties> <jobNames class= 'tree-set' > <comparator class= 'hudson.util.CaseInsensitiveComparator' > </comparator> </jobNames> <jobFilters> </jobFilters> <columns> </columns> <statusFilter> true </statusFilter> </hudson.model.ListView> Ah: jobFilters is a DescribableList, which doesn't implement public void add(int index, E element) ...

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

              Created:
              Updated:
              Resolved: