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

Unable to serialize jenkins.plugins.http_request.HttpRequestExecution with HashiCorp vault credentials

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Minor Minor
    • http-request-plugin
    • None
    • Jenkins: 2.346.2
      ---
      credentials 1139.veb_9579fca_33b_
      credentials-binding 523.vd859a_4b_122e6
      hashicorp-vault-plugin 351.vdb_f83a_1c6a_9d
      http_request 1.15

      Pipeline serialization error occurs when performing a httpRequest step where the credentials reference is a vault provided username/password credential type (source from the hashicorp-vault-plugin).

      java.io.NotSerializableException: hudson.model.Hudson
      	at java.base/java.io.ObjectOutputStream.writeObject0(Unknown Source)
      	at java.base/java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
      	at java.base/java.io.ObjectOutputStream.writeSerialData(Unknown Source)
      	at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
      	at java.base/java.io.ObjectOutputStream.writeObject0(Unknown Source)
      	at java.base/java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
      	at java.base/java.io.ObjectOutputStream.writeSerialData(Unknown Source)
      	at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
      	at java.base/java.io.ObjectOutputStream.writeObject0(Unknown Source)
      	at java.base/java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
      	at java.base/java.io.ObjectOutputStream.writeSerialData(Unknown Source)
      	at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
      	at java.base/java.io.ObjectOutputStream.writeObject0(Unknown Source)
      	at java.base/java.io.ObjectOutputStream.writeObject(Unknown Source)
      	at hudson.remoting.UserRequest._serialize(UserRequest.java:263)
      	at hudson.remoting.UserRequest.serialize(UserRequest.java:272)
      Caused: java.io.IOException: Unable to serialize jenkins.plugins.http_request.HttpRequestExecution@35824d38
      	at hudson.remoting.UserRequest.serialize(UserRequest.java:274)
      	at hudson.remoting.UserRequest.<init>(UserRequest.java:101)
      	at hudson.remoting.Channel.call(Channel.java:998)
      	at jenkins.plugins.http_request.HttpRequestStep$Execution.run(HttpRequestStep.java:404)
      	at jenkins.plugins.http_request.HttpRequestStep$Execution.run(HttpRequestStep.java:383)
      	at org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution.lambda$start$0(SynchronousNonBlockingStepExecution.java:47)
      	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
      	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
      	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
      	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
      	at java.base/java.lang.Thread.run(Unknown Source)
      

      jglick suggested to file a bug with the http-request-plugin:

      https://github.com/jenkinsci/http-request-plugin/blob/d98ff4e40ac0521df4a094c7862e50b289c2496d/src/main/java/jenkins/plugins/http_request/auth/CredentialBasicAuthentication.java#L33 etc. is serialized to an agent, so it needs to call snapshot (or serialize username + password directly).

            janario Janario Oliveira
            kylecronin Kyle Cronin
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: