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

bytecode-compatibility-transformer produces malformed bytecode

    Details

    • Similar Issues:

      Description

      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.

        Attachments

          Issue Links

            Activity

            tfennelly Tom FENNELLY created issue -
            tfennelly Tom FENNELLY made changes -
            Field Original Value New Value
            Description 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.
            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.
            tfennelly Tom FENNELLY made changes -
            Description 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.
            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.
            tfennelly Tom FENNELLY made changes -
            Description 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.
            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.
            teilo James Nord made changes -
            Assignee Kohsuke Kawaguchi [ kohsuke ] James Nord [ teilo ]
            jglick Jesse Glick made changes -
            Link This issue is related to JENKINS-19383 [ JENKINS-19383 ]
            teilo James Nord made changes -
            Link This issue is related to JENKINS-28799 [ JENKINS-28799 ]
            teilo James Nord made changes -
            Summary bytecode-compatibility-transformer transforming methods/fields it should not be transforming bytecode-compatibility-transformer produces malformed bytecode
            teilo James Nord made changes -
            Description 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.
            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.

            alskor Alex Java made changes -
            Link This issue is related to JENKINS-29692 [ JENKINS-29692 ]
            teilo James Nord made changes -
            Link This issue is related to JENKINS-30820 [ JENKINS-30820 ]
            teilo James Nord made changes -
            Status Open [ 1 ] Closed [ 6 ]
            Resolution Fixed [ 1 ]
            jglick Jesse Glick made changes -
            Link This issue is duplicated by JENKINS-30665 [ JENKINS-30665 ]
            rtyler R. Tyler Croy made changes -
            Workflow JNJira [ 163639 ] JNJira + In-Review [ 208856 ]

              People

              • Assignee:
                teilo James Nord
                Reporter:
                tfennelly Tom FENNELLY
              • Votes:
                2 Vote for this issue
                Watchers:
                9 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: