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

Git-client plugin 3.11.2 fails with Java 8 agents when trilead 1.71.v9e7860a_67a_df is installed

    • Icon: Bug Bug
    • Resolution: Duplicate
    • Icon: Critical Critical
    • trilead-api-plugin
    • None
    • git-client 3.11.2
      Trilead API Plugin Version 1.71.v9e7860a_67a_df

      java.io.IOException: Message: Remote call on jenkins-freebsd12-worker failed; Cause: java.lang.UnsupportedClassVersionError: Failed to load org.jenkinsci.plugins.gitclient.verifier.AbstractJGitHostKeyVerifier; toString: java.io.IOException: Remote call on jenkins-freebsd12-worker failed
      
      java.io.IOException: Message: Remote call on JNLP4-connect connection from swarmclient:12345 failed; Cause: java.lang.UnsupportedClassVersionError: Failed to load org.jenkinsci.plugins.gitclient.verifier.AbstractJGitHostKeyVerifier; toString: java.io.IOException: Remote call on JNLP4-connect connection from swarmclient:12345 

      I am not quickly sure which version of Java is on "swarmclient" above (OS is openbsd-6.4), but for the FreeBSD 12 worker it was Java 8:

      $ java -version
      openjdk version "1.8.0_292"
      OpenJDK Runtime Environment (build 1.8.0_292-b10)
      OpenJDK 64-Bit Server VM (build 25.292-b10, mixed mode) 

      Git-client-plugin 3.11.1 worked there, so I suppose a dependency (for org.jenkinsci.plugins.gitclient.verifier.AbstractJGitHostKeyVerifier?) snuck in as a JAR build for newer version? Rebuilding the plugin itself with JDK8 as a quick shot did not help (UPDATE: Thinking of it, I just changed JAVA_HOME and did not mvn clean the build area; retrying). I'll know more later (I merely commute now).

      If Java 8 is not forbidden yet, just "not recommended anymore", this is a critical issue generally.

      In particular, that CI farm is using Jenkins LTS (2.346.2) with agents for some older build environments for legacy appliances running the Java 8 as newest available there and then. So the breakage was not quite expected.

          [JENKINS-69255] Git-client plugin 3.11.2 fails with Java 8 agents when trilead 1.71.v9e7860a_67a_df is installed

          Jim Klimov added a comment - - edited

          Ugh, so neither a mvn clean package rebuild with Java 8, nor rolling back to the previous git-client.jpi which worked until yesterday, helped.

          However now I got a look at actual stack traces and not summaries from my pipeline notifications, and it says more clearly:

          Caused by: java.lang.UnsupportedClassVersionError:
            com/trilead/ssh2/ServerHostKeyVerifier has been compiled by a more recent version
            of the Java Runtime (class file version 55.0), this version of the Java Runtime
            only recognizes class file versions up to 52.0 

          so that one is the culprit.

          Discussion at https://github.com/jenkinsci/trilead-api-plugin/pull/55#issuecomment-1205479798 seems to confirm this as an almost intentional direction.

          Notably, there apparently was a "broken" version published (marked compatible with older baseline when it was not):
          > Yes, we know that, which is why it was pulled from the UC; merging this PR would publish a correction that should be safe to appear on the UC. If you installed the broken version, revert.

          Jim Klimov added a comment - - edited Ugh, so neither a mvn clean package rebuild with Java 8, nor rolling back to the previous git-client.jpi which worked until yesterday, helped. However now I got a look at actual stack traces and not summaries from my pipeline notifications, and it says more clearly: Caused by: java.lang.UnsupportedClassVersionError: com/trilead/ssh2/ServerHostKeyVerifier has been compiled by a more recent version of the Java Runtime ( class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0 so that one is the culprit. Discussion at https://github.com/jenkinsci/trilead-api-plugin/pull/55#issuecomment-1205479798 seems to confirm this as an almost intentional direction. Notably, there apparently was a "broken" version published (marked compatible with older baseline when it was not): > Yes, we know that, which is why it was pulled from the UC; merging this PR would publish a correction that should be safe to appear on the UC. If you installed the broken version, revert.

          Mark Waite added a comment -

          As you noted, you can downgrade the trilead plugin from 1.71.v9e7860a_67a_df to 1.67.vc3938a_35172f. More details are available in JENKINS-69229

          Mark Waite added a comment - As you noted, you can downgrade the trilead plugin from 1.71.v9e7860a_67a_df to 1.67.vc3938a_35172f. More details are available in JENKINS-69229

            markewaite Mark Waite
            jimklimov Jim Klimov
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: