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

bytecode-compatibility-transformer produces malformed bytecode

      In the case where we see this issue, an @AdaptField annotation on Queue.Item was causing transformations in other classes not intended for transformation (in our case, in an elasticsearch class). The result of this transformation was a StackMapFrame verifier error.

      this issue tracks the tracks:

        • bytecode-compatibility-transformer doesn't properly support updating of StackMapFrames after manipulation.

          [JENKINS-28781] bytecode-compatibility-transformer produces malformed bytecode

          Tom FENNELLY created issue -
          Tom FENNELLY made changes -
          Description Original: In the case where we see this issue, an [@AdaptField annotation on Queue.Item|https://github.com/jenkinsci/jenkins/blob/master/core/src/main/java/hudson/model/Queue.java#L1753-L1762] was causing a transformation in a different class (in our case, in an elasticsearch class). The result of this transformation was a StackMapFrame verifier error.

          So there may actually be 2 or 3 bugs that need to be spun out from this:

          # The bytecode transformer is transforming methods/fields that it should not be transforming.
          # And one or both of the following:
          #* Jenkins core use of the bytecode transformer is not specifying to update StackMapFrame after transformations/rewrites.
          #* bytecode transformer is not performing StackMapFrame updates after transformations/rewrites.
          New: In the case where we see this issue, an [@AdaptField annotation on Queue.Item|https://github.com/jenkinsci/jenkins/blob/master/core/src/main/java/hudson/model/Queue.java#L1753-L1762] was causing transformations in other classes not intended for transformation (in our case, in an elasticsearch class). The result of this transformation was a StackMapFrame verifier error.

          So there may actually be 2 or 3 bugs that need to be spun out from this:

          # The bytecode transformer is transforming methods/fields that it should not be transforming.
          # And one or both of the following:
          #* Jenkins core use of the bytecode transformer is not specifying to update StackMapFrame after transformations/rewrites.
          #* bytecode transformer is not performing StackMapFrame updates after transformations/rewrites.
          Tom FENNELLY made changes -
          Description Original: In the case where we see this issue, an [@AdaptField annotation on Queue.Item|https://github.com/jenkinsci/jenkins/blob/master/core/src/main/java/hudson/model/Queue.java#L1753-L1762] was causing transformations in other classes not intended for transformation (in our case, in an elasticsearch class). The result of this transformation was a StackMapFrame verifier error.

          So there may actually be 2 or 3 bugs that need to be spun out from this:

          # The bytecode transformer is transforming methods/fields that it should not be transforming.
          # And one or both of the following:
          #* Jenkins core use of the bytecode transformer is not specifying to update StackMapFrame after transformations/rewrites.
          #* bytecode transformer is not performing StackMapFrame updates after transformations/rewrites.
          New: In the case where we see this issue, an [@AdaptField annotation on Queue.Item|https://github.com/jenkinsci/jenkins/blob/master/core/src/main/java/hudson/model/Queue.java#L1753-L1762] was causing transformations in other classes not intended for transformation (in our case, in an elasticsearch class). The result of this transformation was a StackMapFrame verifier error.

          So there may actually be 2 or 3 bugs that need to be spun out from this:

          # The bytecode transformer is transforming methods/fields that it should not be transforming.
          # And one or both of the following:
          #* bytecode-compatibility-transformer doesn't support updating of StackMapFrames after manipulation.
          #* bytecode-compatibility-transformer does support updating of StackMapFrames after manipulation, but Jenkins core is not using that properly.

          It does look as though bytecode-compatibility-transformer has some support for StackMapFrames.
          Tom FENNELLY made changes -
          Description Original: In the case where we see this issue, an [@AdaptField annotation on Queue.Item|https://github.com/jenkinsci/jenkins/blob/master/core/src/main/java/hudson/model/Queue.java#L1753-L1762] was causing transformations in other classes not intended for transformation (in our case, in an elasticsearch class). The result of this transformation was a StackMapFrame verifier error.

          So there may actually be 2 or 3 bugs that need to be spun out from this:

          # The bytecode transformer is transforming methods/fields that it should not be transforming.
          # And one or both of the following:
          #* bytecode-compatibility-transformer doesn't support updating of StackMapFrames after manipulation.
          #* bytecode-compatibility-transformer does support updating of StackMapFrames after manipulation, but Jenkins core is not using that properly.

          It does look as though bytecode-compatibility-transformer has some support for StackMapFrames.
          New: In the case where we see this issue, an [@AdaptField annotation on Queue.Item|https://github.com/jenkinsci/jenkins/blob/master/core/src/main/java/hudson/model/Queue.java#L1753-L1762] was causing transformations in other classes not intended for transformation (in our case, in an elasticsearch class). The result of this transformation was a StackMapFrame verifier error.

          So there may actually be 2 or 3 bugs that need to be spun out from this:

          # The bytecode transformer is transforming methods/fields that it should not be transforming.
          # And one or both of the following:
          #* bytecode-compatibility-transformer doesn't properly support updating of StackMapFrames after manipulation.
          #* bytecode-compatibility-transformer does support updating of StackMapFrames after manipulation, but Jenkins core is not using that properly.

          It does look as though bytecode-compatibility-transformer has some support for StackMapFrames.
          James Nord made changes -
          Assignee Original: Kohsuke Kawaguchi [ kohsuke ] New: James Nord [ teilo ]
          Jesse Glick made changes -
          Link New: This issue is related to JENKINS-19383 [ JENKINS-19383 ]
          James Nord made changes -
          Link New: This issue is related to JENKINS-28799 [ JENKINS-28799 ]
          James Nord made changes -
          Summary Original: bytecode-compatibility-transformer transforming methods/fields it should not be transforming New: bytecode-compatibility-transformer produces malformed bytecode
          James Nord made changes -
          Description Original: In the case where we see this issue, an [@AdaptField annotation on Queue.Item|https://github.com/jenkinsci/jenkins/blob/master/core/src/main/java/hudson/model/Queue.java#L1753-L1762] was causing transformations in other classes not intended for transformation (in our case, in an elasticsearch class). The result of this transformation was a StackMapFrame verifier error.

          So there may actually be 2 or 3 bugs that need to be spun out from this:

          # The bytecode transformer is transforming methods/fields that it should not be transforming.
          # And one or both of the following:
          #* bytecode-compatibility-transformer doesn't properly support updating of StackMapFrames after manipulation.
          #* bytecode-compatibility-transformer does support updating of StackMapFrames after manipulation, but Jenkins core is not using that properly.

          It does look as though bytecode-compatibility-transformer has some support for StackMapFrames.
          New: In the case where we see this issue, an [@AdaptField annotation on Queue.Item|https://github.com/jenkinsci/jenkins/blob/master/core/src/main/java/hudson/model/Queue.java#L1753-L1762] was causing transformations in other classes not intended for transformation (in our case, in an elasticsearch class). The result of this transformation was a StackMapFrame verifier error.

          this issue tracks the tracks:
          #* bytecode-compatibility-transformer doesn't properly support updating of StackMapFrames after manipulation.

          Alex Java made changes -
          Link New: This issue is related to JENKINS-29692 [ JENKINS-29692 ]
          James Nord made changes -
          Link New: This issue is related to JENKINS-30820 [ JENKINS-30820 ]

            Unassigned Unassigned
            tfennelly Tom FENNELLY
            Votes:
            2 Vote for this issue
            Watchers:
            9 Start watching this issue

              Created:
              Updated:
              Resolved: