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

Using revList_ Command CliGitAPIImpl is not serializable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Blocker Blocker

      Hi,

      When developping a plugin i noticed that my code run on controller but not within remote agent.

       

      GitClient client = scm.createClient(listener, env, build, workspace);
      
      client.fetch_().from(remoteURI, remote.getFetchRefSpecs()).execute();
      
      // this code works everywhere
      listener.getLogger().println(client.revList("710a3136cb4cdc077f1ddb528120c4f1eaa68cfa"));
      
      // this part only on controller
      List<ObjectId> mergeIds = new ArrayList();
      client.revList_().reference("710a3136cb4cdc077f1ddb528120c4f1eaa68cfa").to(mergeIds).execute();
      listener.getLogger().println("Le dernier merge commit : " + mergeIds.get(0).name());
      

      The console output when build is run on remote :

      java.lang.ClassCastException: class org.jenkinsci.plugins.gitclient.CliGitAPIImpl$11 is returned from public abstract org.jenkinsci.plugins.gitclient.RevListCommand org.jenkinsci.plugins.gitclient.GitClient.revList_() on class hudson.plugins.git.GitAPI but it's not serializable
      Also:   hudson.remoting.Channel$CallSiteStackTrace: Remote call to JNLP4-connect connection from kubernetes.docker.internal/127.0.0.1:59311
      		at hudson.remoting.Channel.attachCallSiteStackTrace(Channel.java:1800)
      		at hudson.remoting.UserRequest$ExceptionResponse.retrieve(UserRequest.java:356)
      		at hudson.remoting.Channel.call(Channel.java:1001)
      		at hudson.remoting.RemoteInvocationHandler.invoke(RemoteInvocationHandler.java:286)
      		at com.sun.proxy.$Proxy102.revList_(Unknown Source)
      		at org.jenkinsci.plugins.gitclient.RemoteGitImpl.revList_(RemoteGitImpl.java:609)
      		at com.engie.franceb2b.ec.side.CreateReleaseBranchStep.createReleaseBranch(CreateReleaseBranchStep.java:94)
      		at com.engie.franceb2b.ec.side.CreateReleaseBranchStep.perform(CreateReleaseBranchStep.java:115)
      		at org.jenkinsci.plugins.workflow.steps.CoreStep$Execution.run(CoreStep.java:100)
      		at org.jenkinsci.plugins.workflow.steps.CoreStep$Execution.run(CoreStep.java:70)
      		at org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution.lambda$start$0(SynchronousNonBlockingStepExecution.java:47)
      		at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
      		at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
      		at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
      		at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
      Caused: hudson.remoting.RemotingSystemException
      	at hudson.remoting.RemoteInvocationHandler$RPCRequest.perform(RemoteInvocationHandler.java:939)
      	at hudson.remoting.RemoteInvocationHandler$RPCRequest.call(RemoteInvocationHandler.java:905)
      	at hudson.remoting.RemoteInvocationHandler$RPCRequest.call(RemoteInvocationHandler.java:857)
      	at hudson.remoting.UserRequest.perform(UserRequest.java:211)
      	at hudson.remoting.UserRequest.perform(UserRequest.java:54)
      	at hudson.remoting.Request$2.run(Request.java:376)
      	at hudson.remoting.InterceptingExecutorService.lambda$wrap$0(InterceptingExecutorService.java:78)
      	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
      	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
      	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
      	at hudson.remoting.Engine$1.lambda$newThread$0(Engine.java:119)
      	at java.base/java.lang.Thread.run(Thread.java:829)
       > git.exe rev-list 710a3136cb4cdc077f1ddb528120c4f1eaa68cfa # timeout=10
      

          [JENKINS-67727] Using revList_ Command CliGitAPIImpl is not serializable

          Simon Bouland created issue -
          Simon Bouland made changes -
          Description Original: Hi,

          When developping a plugin i noticed that my code run on controller but not within remote agent.

           
          {code:java}
          // this code works everywhere
          listener.getLogger().println(client.revList("710a3136cb4cdc077f1ddb528120c4f1eaa68cfa"));

          // this part only on controller
          List<ObjectId> mergeIds = new ArrayList();
          client.revList_().reference("710a3136cb4cdc077f1ddb528120c4f1eaa68cfa").to(mergeIds).execute();
          listener.getLogger().println("Le dernier merge commit : " + mergeIds.get(0).name());
          {code}
          The console output when build is run on remote :
          {code:java}
          java.lang.ClassCastException: class org.jenkinsci.plugins.gitclient.CliGitAPIImpl$11 is returned from public abstract org.jenkinsci.plugins.gitclient.RevListCommand org.jenkinsci.plugins.gitclient.GitClient.revList_() on class hudson.plugins.git.GitAPI but it's not serializable
          Also: hudson.remoting.Channel$CallSiteStackTrace: Remote call to JNLP4-connect connection from kubernetes.docker.internal/127.0.0.1:59311
          at hudson.remoting.Channel.attachCallSiteStackTrace(Channel.java:1800)
          at hudson.remoting.UserRequest$ExceptionResponse.retrieve(UserRequest.java:356)
          at hudson.remoting.Channel.call(Channel.java:1001)
          at hudson.remoting.RemoteInvocationHandler.invoke(RemoteInvocationHandler.java:286)
          at com.sun.proxy.$Proxy102.revList_(Unknown Source)
          at org.jenkinsci.plugins.gitclient.RemoteGitImpl.revList_(RemoteGitImpl.java:609)
          at com.engie.franceb2b.ec.side.CreateReleaseBranchStep.createReleaseBranch(CreateReleaseBranchStep.java:94)
          at com.engie.franceb2b.ec.side.CreateReleaseBranchStep.perform(CreateReleaseBranchStep.java:115)
          at org.jenkinsci.plugins.workflow.steps.CoreStep$Execution.run(CoreStep.java:100)
          at org.jenkinsci.plugins.workflow.steps.CoreStep$Execution.run(CoreStep.java:70)
          at org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution.lambda$start$0(SynchronousNonBlockingStepExecution.java:47)
          at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
          at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
          at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
          at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
          Caused: hudson.remoting.RemotingSystemException
          at hudson.remoting.RemoteInvocationHandler$RPCRequest.perform(RemoteInvocationHandler.java:939)
          at hudson.remoting.RemoteInvocationHandler$RPCRequest.call(RemoteInvocationHandler.java:905)
          at hudson.remoting.RemoteInvocationHandler$RPCRequest.call(RemoteInvocationHandler.java:857)
          at hudson.remoting.UserRequest.perform(UserRequest.java:211)
          at hudson.remoting.UserRequest.perform(UserRequest.java:54)
          at hudson.remoting.Request$2.run(Request.java:376)
          at hudson.remoting.InterceptingExecutorService.lambda$wrap$0(InterceptingExecutorService.java:78)
          at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
          at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
          at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
          at hudson.remoting.Engine$1.lambda$newThread$0(Engine.java:119)
          at java.base/java.lang.Thread.run(Thread.java:829)
           > git.exe rev-list 710a3136cb4cdc077f1ddb528120c4f1eaa68cfa # timeout=10
          {code}
          New: Hi,

          When developping a plugin i noticed that my code run on controller but not within remote agent.

           
          {code:java}
          GitClient client = scm.createClient(listener, env, build, workspace);

          client.fetch_().from(remoteURI, remote.getFetchRefSpecs()).execute();

          // this code works everywhere
          listener.getLogger().println(client.revList("710a3136cb4cdc077f1ddb528120c4f1eaa68cfa"));

          // this part only on controller
          List<ObjectId> mergeIds = new ArrayList();
          client.revList_().reference("710a3136cb4cdc077f1ddb528120c4f1eaa68cfa").to(mergeIds).execute();
          listener.getLogger().println("Le dernier merge commit : " + mergeIds.get(0).name());
          {code}
          The console output when build is run on remote :
          {code:java}
          java.lang.ClassCastException: class org.jenkinsci.plugins.gitclient.CliGitAPIImpl$11 is returned from public abstract org.jenkinsci.plugins.gitclient.RevListCommand org.jenkinsci.plugins.gitclient.GitClient.revList_() on class hudson.plugins.git.GitAPI but it's not serializable
          Also: hudson.remoting.Channel$CallSiteStackTrace: Remote call to JNLP4-connect connection from kubernetes.docker.internal/127.0.0.1:59311
          at hudson.remoting.Channel.attachCallSiteStackTrace(Channel.java:1800)
          at hudson.remoting.UserRequest$ExceptionResponse.retrieve(UserRequest.java:356)
          at hudson.remoting.Channel.call(Channel.java:1001)
          at hudson.remoting.RemoteInvocationHandler.invoke(RemoteInvocationHandler.java:286)
          at com.sun.proxy.$Proxy102.revList_(Unknown Source)
          at org.jenkinsci.plugins.gitclient.RemoteGitImpl.revList_(RemoteGitImpl.java:609)
          at com.engie.franceb2b.ec.side.CreateReleaseBranchStep.createReleaseBranch(CreateReleaseBranchStep.java:94)
          at com.engie.franceb2b.ec.side.CreateReleaseBranchStep.perform(CreateReleaseBranchStep.java:115)
          at org.jenkinsci.plugins.workflow.steps.CoreStep$Execution.run(CoreStep.java:100)
          at org.jenkinsci.plugins.workflow.steps.CoreStep$Execution.run(CoreStep.java:70)
          at org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution.lambda$start$0(SynchronousNonBlockingStepExecution.java:47)
          at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
          at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
          at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
          at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
          Caused: hudson.remoting.RemotingSystemException
          at hudson.remoting.RemoteInvocationHandler$RPCRequest.perform(RemoteInvocationHandler.java:939)
          at hudson.remoting.RemoteInvocationHandler$RPCRequest.call(RemoteInvocationHandler.java:905)
          at hudson.remoting.RemoteInvocationHandler$RPCRequest.call(RemoteInvocationHandler.java:857)
          at hudson.remoting.UserRequest.perform(UserRequest.java:211)
          at hudson.remoting.UserRequest.perform(UserRequest.java:54)
          at hudson.remoting.Request$2.run(Request.java:376)
          at hudson.remoting.InterceptingExecutorService.lambda$wrap$0(InterceptingExecutorService.java:78)
          at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
          at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
          at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
          at hudson.remoting.Engine$1.lambda$newThread$0(Engine.java:119)
          at java.base/java.lang.Thread.run(Thread.java:829)
           > git.exe rev-list 710a3136cb4cdc077f1ddb528120c4f1eaa68cfa # timeout=10
          {code}
          Simon Bouland made changes -
          Environment Original: Jenkins: 2.289.1
          OS: Windows 10 - 10.0
          ---
          ace-editor:1.1
          apache-httpcomponents-client-4-api:4.5.13-1.0
          bootstrap4-api:4.6.0-3
          bootstrap5-api:5.1.1-1
          bouncycastle-api:2.20
          branch-api:2.7.0
          caffeine-api:2.9.2-29.v717aac953ff3
          checks-api:1.7.2
          cloudbees-folder:6.17
          command-launcher:1.2
          credentials:2.6.1
          credentials-binding:1.27.1
          display-url-api:2.3.5
          durable-task:1.39
          echarts-api:5.2.1-2
          font-awesome-api:5.15.4-1
          git:4.8.3
          git-client:3.9.1-SNAPSHOT (private-49bdd2e4-WN6295)
          git-server:1.9
          github:1.34.1
          github-api:1.301-378.v9807bd746da5
          github-branch-source:2.11.4
          handlebars:3.0.8
          jackson2-api:2.13.1-246.va8a9f3eaf46a
          jaxb:2.3.0
          jdk-tool:1.0
          jjwt-api:0.11.2-9.c8b45b8bb173
          jquery3-api:3.6.0-2
          jsch:0.1.55.2
          junit:1.53
          lockable-resources:2.13
          mailer:1.34
          matrix-project:1.18.1
          momentjs:1.1.1
          okhttp-api:4.9.3-105.vb96869f8ac3a
          pipeline-build-step:2.15
          pipeline-graph-analysis:1.11
          pipeline-input-step:427.va6441fa17010
          pipeline-milestone-step:1.3.2
          pipeline-model-api:1.9.3
          pipeline-model-definition:1.9.3
          pipeline-model-extensions:1.9.3
          pipeline-rest-api:2.20
          pipeline-stage-step:291.vf0a8a7aeeb50
          pipeline-stage-tags-metadata:1.9.3
          pipeline-stage-view:2.20
          plain-credentials:1.7
          plugin-util-api:2.5.0
          popper-api:1.16.1-2
          popper2-api:2.10.2-1
          scm-api:2.6.5
          script-security:1.78
          side:1.0.0-SNAPSHOT (private-a4cf4812-WN6295)
          snakeyaml-api:1.29.1
          ssh-credentials:1.18.1
          sshd:3.0.3
          structs:1.23
          token-macro:267.vcdaea6462991
          trilead-api:1.0.13
          workflow-aggregator:2.6
          workflow-api:2.46
          workflow-basic-steps:2.24
          workflow-cps:2.94
          workflow-cps-global-lib:2.21
          workflow-durable-task-step:2.40
          workflow-job:2.41
          workflow-multibranch:2.24
          workflow-scm-step:2.13
          workflow-step-api:2.24
          workflow-support:3.8
          New: Jenkins: 2.289.1
          OS: Windows 10 - 10.0
          ---
          ace-editor:1.1
          apache-httpcomponents-client-4-api:4.5.13-1.0
          bootstrap4-api:4.6.0-3
          bootstrap5-api:5.1.3-4
          bouncycastle-api:2.25
          branch-api:2.7.0
          caffeine-api:2.9.2-29.v717aac953ff3
          checks-api:1.7.2
          cloudbees-folder:6.17
          command-launcher:1.2
          credentials:2.6.1
          credentials-binding:1.27.1
          display-url-api:2.3.5
          durable-task:493.v195aefbb0ff2
          echarts-api:5.2.2-2
          font-awesome-api:5.15.4-5
          git:4.10.1
          git-client:3.11.0
          git-server:1.10
          github:1.34.1
          github-api:1.301-378.v9807bd746da5
          github-branch-source:2.11.4
          handlebars:3.0.8
          jackson2-api:2.13.1-246.va8a9f3eaf46a
          jaxb:2.3.0
          jdk-tool:1.0
          jjwt-api:0.11.2-5.143e44951c52
          jquery3-api:3.6.0-2
          jsch:0.1.55.2
          junit:1.53
          lockable-resources:2.13
          mailer:391.ve4a_38c1b_cf4b_
          matrix-project:1.20
          momentjs:1.1.1
          okhttp-api:4.9.2-20211102
          pipeline-build-step:2.15
          pipeline-graph-analysis:1.11
          pipeline-input-step:446.vf27b_0b_83500e
          pipeline-milestone-step:1.3.2
          pipeline-model-api:1.9.3
          pipeline-model-definition:1.9.3
          pipeline-model-extensions:1.9.3
          pipeline-rest-api:2.21
          pipeline-stage-step:291.vf0a8a7aeeb50
          pipeline-stage-tags-metadata:1.9.3
          pipeline-stage-view:2.21
          plain-credentials:1.7
          plugin-util-api:2.13.0
          popper-api:1.16.1-2
          popper2-api:2.11.2-1
          scm-api:2.6.5
          script-security:1118.vba21ca2e3286
          side:1.0.0-SNAPSHOT (private-fd896575-WN6295)
          snakeyaml-api:1.29.1
          ssh-credentials:1.19
          sshd:3.1.0
          structs:308.v852b473a2b8c
          token-macro:267.vcdaea6462991
          trilead-api:1.0.13
          workflow-aggregator:2.6
          workflow-api:1108.v57edf648f5d4
          workflow-basic-steps:2.24
          workflow-cps:2648.va9433432b33c
          workflow-cps-global-lib:2.21
          workflow-durable-task-step:2.40
          workflow-job:1145.v7f2433caa07f
          workflow-multibranch:706.vd43c65dec013
          workflow-scm-step:2.13
          workflow-step-api:622.vb_8e7c15b_c95a_
          workflow-support:804.vba10a18a1476
          Mark Waite made changes -
          Assignee Original: Mark Waite [ markewaite ]

            Unassigned Unassigned
            bouland Simon Bouland
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: