Получение исключения при выполнении Jenkins Pipeline: Причина: java .io.NotSerializableException: groovy. json .internal.LazyMap - PullRequest
1 голос
/ 02 августа 2020

Я пытаюсь создать конвейер Jenkin, который выполняет HTTP-вызовы моего стороннего конвейера на разных этапах и на основе ответа переходят к следующему этапу. Ниже мой файл jenkins , он возвращает код состояния как 204. Я даже пробовал с помощью команды оболочки curl, но все равно получаю ту же проблему. Я даже сослался на Jenkins Pipeline NotSerializableException: groovy. json .internal.LazyMap , но я не получить то, где именно я пропустил.

Ниже мой консольный вывод работы jenkins:

Started by user myldap@mycompany.com
Running in Durability level: MAX_SURVIVABILITY
[Pipeline] Start of Pipeline
[Pipeline] node
Running on Jenkins in /apps/jenkins/latest/workspace/Moonbeam Deploy Test
[Pipeline] {
[Pipeline] stage
[Pipeline] { (Automate_Moonbeam_Deployment)
[Pipeline] script
[Pipeline] {
[Pipeline] echo
Fetch the valid PR to deploy
[Pipeline] httpRequest
HttpMethod: GET
URL: https://thirdpartyPipeline.solution.corp.mycompany.com/v1/csmt-fault-testing/fault-tolerance-demo/pulls
Content-Type: application/json
authorization: *****
Sending request to url: https://thirdpartyPipeline.solution.corp.mycompany.com/v1/csmt-fault-testing/fault-tolerance-demo/pulls
Response Code: HTTP/1.1 200 OK
Success code from [100‥399]
[Pipeline] echo
pull requestObject = [[id:425010, github_id:2115456, number:6, title:Test Deploy: Update README.md, branch_name:master, base_branch_name:master, sha:b06278fdce1a21b2a9cbb85787fc9277096aad92, remote:git@git.corp.mycompany.com:myldap/fault-tolerance-demo.git, created_at:2020-07-30T15:39:23.530Z, updated_at:2020-07-31T05:07:31.074Z, closed:false, sent_at:2020-07-30T15:44:44.000Z, approved_at:2020-07-31T05:07:31.071Z, forced_approver_id:null, repository_id:167771, mergeable:true, acl_comment:null, status:success, latest_statuses:[[status:[id:2557436, pull_request_id:425010, sha:b06278fdce1a21b2a9cbb85787fc9277096aad92, state:success, created_at:2020-07-30T15:44:46.804Z, updated_at:2020-07-30T15:50:59.938Z, sent_at:2020-07-30T15:50:59.000Z, deleted_at:null, context:thirdpartyPipeline-ci/make-ci]]], user:[id:844, username:myldap, email:myldap@mycompany.com, name:Krishna Chandra Soni, avatar:https://git.corp.mycompany.com/avatars/u/9849?, admin:null, created_at:2017-04-28T13:55:35.491Z, updated_at:2020-08-02T10:49:47.542Z, slack_username:null, role:standard, github_id:9849, display_name:hjklhi], repository:[id:167771, name:fault-tolerance-demo, owner:csmt-fault-testing, github_id:298251, service_id:167773, created_at:2020-07-20T07:34:18.888Z, updated_at:2020-07-20T07:34:18.888Z, approval_regex:^(approved|:\+1:|LGTM|:thumbsup:|:white_check_mark:|?)\s*$, deleted_at:null, multi_merge_allowed:true, min_approvers:1, base_branch:master], approved:true, modifies_pipeline_spec_file:false, reviews:[[user:[id:1jkl223, username:nitkjjain, email:nitkjmnk.jain@mycompany.com, name:Nitesh Jain, avatar:https://git.corp.mycompany.com/avatars/u/15441?, admin:null, created_at:2017-08-31T08:43:02.503Z, updated_at:2020-07-30T13:20:47.319Z, slack_username:nitn, role:standard, github_id:15441, display_name:Nitesjkljklh n], approved:true]], pipeline_file_data:[pipeline_files_modified:[], allowed_to_deploy_pipeline_files:true, reonboarding_required:false, service_spec_errors:[other_errors:[]], deployable_by_user:true]]]
[Pipeline] echo
PR with id 425010 exist, can proceed for deployment
[Pipeline] }
[Pipeline] // script
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Proceed_With_Joining_Queue)
[Pipeline] script
[Pipeline] {
[Pipeline] echo
PR Id received from previous step: 425010
[Pipeline] httpRequest
HttpMethod: POST
URL: https://thirdpartyPipeline.solution.corp.mycompany.com/v2/csmt-fault-testing/fault-tolerance-demo/queue
Content-Type: application/json
authorization: *****
Sending request to url: https://thirdpartyPipeline.solution.corp.mycompany.com/v2/csmt-fault-testing/fault-tolerance-demo/queue
Response Code: HTTP/1.1 200 OK
Success code from [100‥399]
[Pipeline] echo
Control Session Id is 394359 can proceed with deploy
[Pipeline] }
[Pipeline] // script
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Proceed_With_Deploy)
[Pipeline] script
[Pipeline] {
[Pipeline] echo
Control Session Id received from previous step: 394359
[Pipeline] httpRequest
HttpMethod: POST
URL: https://thirdpartyPipeline.solution.corp.mycompany.com/v2/csmt-fault-testing/fault-tolerance-demo/deploys
Content-Type: application/json
authorization: *****
Sending request to url: https://thirdpartyPipeline.solution.corp.mycompany.com/v2/csmt-fault-testing/fault-tolerance-demo/deploys
Response Code: HTTP/1.1 200 OK
Response: 
{"id":447244,"status":"CANDIDATE_CREATING","deploy_candidate":{"head_sha":null},"pull_requests":[{"id":425010,"github_id":2115456,"number":6,"title":"Test Deploy: Update README.md","sha":"b06278fdce1a21b2a9cbb85787fc9277096aad92"}],"current_step":{},"next_deployable_steps":[],"environments":[{"id":667925,"name":"Build","optional":false,"production":false,"single_rollback_allowed":false,"status":"UNSTARTED","steps":[{"id":621647,"name":"default","status":"UNSTARTED","projects":[{"id":1114499,"name":"client-csmt-fault-testing-fault-tolerance-demo-solution-codebuild-artifactory-build","required":true,"title":"build-makefile","avg_build_time":2.9439725,"status":"UNSTARTED","promotable":{"end_values_met":false,"job_status_met":false},"builds":[]}]}]},{"id":667924,"name":"Image Scan","optional":false,"production":false,"single_rollback_allowed":false,"status":"UNSTARTED","steps":[{"id":621646,"name":"default","status":"UNSTARTED","projects":[{"id":1114498,"name":"client-csmt-fault-testing-fault-tolerance-demo-solution-codebuild-aqua-scan","required":true,"title":"image-scan","avg_build_time":65.51788289999999,"status":"UNSTARTED","promotable":{"end_values_met":false,"job_status_met":false},"builds":[]}]}]},{"id":667923,"name":"Dev","optional":false,"production":false,"single_rollback_allowed":false,"status":"UNSTARTED","steps":[{"id":621645,"name":"deploy---Dev","status":"UNSTARTED","projects":[{"id":1114497,"name":"client-csmt-fault-testing-fault-tolerance-demo-solution-lambda-k8s-director","required":true,"title":"deploy-Dev-va6-faulttolerancedemo","avg_build_time":187.452228125,"status":"UNSTARTED","promotable":{"end_values_met":false,"job_status_met":false},"builds":[]}]}]}]}
Success code from [100‥399]
[Pipeline] echo
DeployId is  447244
[Pipeline] echo
Deploy Status is  is  CANDIDATE_CREATING
[Pipeline] echo
environmentId is 667925
[Pipeline] }
[Pipeline] // script
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Get_Deploy_Status)
[Pipeline] script
[Pipeline] {
[Pipeline] httpRequest
HttpMethod: GET
URL: https://thirdpartyPipeline.solution.corp.mycompany.com/v2/csmt-fault-testing/fault-tolerance-demo/deploys/447244
Content-Type: application/json
authorization: *****
Sending request to url: https://thirdpartyPipeline.solution.corp.mycompany.com/v2/csmt-fault-testing/fault-tolerance-demo/deploys/447244
Response Code: HTTP/1.1 200 OK
Success code from [100‥399]
[Pipeline] echo
Deploy Status is {"id":447244,"status":"CANDIDATE_CREATING","deploy_candidate":{"head_sha":null},"pull_requests":[{"id":425010,"github_id":2115456,"number":6,"title":"Test Deploy: Update README.md","sha":"b06278fdce1a21b2a9cbb85787fc9277096aad92"}],"current_step":{},"next_deployable_steps":[],"environments":[{"id":667925,"name":"Build","optional":false,"production":false,"single_rollback_allowed":false,"status":"UNSTARTED","steps":[{"id":621647,"name":"default","status":"UNSTARTED","projects":[{"id":1114499,"name":"client-csmt-fault-testing-fault-tolerance-demo-solution-codebuild-artifactory-build","required":true,"title":"build-makefile","avg_build_time":2.9439725,"status":"UNSTARTED","promotable":{"end_values_met":false,"job_status_met":false},"builds":[]}]}]},{"id":667924,"name":"Image Scan","optional":false,"production":false,"single_rollback_allowed":false,"status":"UNSTARTED","steps":[{"id":621646,"name":"default","status":"UNSTARTED","projects":[{"id":1114498,"name":"client-csmt-fault-testing-fault-tolerance-demo-solution-codebuild-aqua-scan","required":true,"title":"image-scan","avg_build_time":65.51788289999999,"status":"UNSTARTED","promotable":{"end_values_met":false,"job_status_met":false},"builds":[]}]}]},{"id":667923,"name":"Dev","optional":false,"production":false,"single_rollback_allowed":false,"status":"UNSTARTED","steps":[{"id":621645,"name":"deploy---Dev","status":"UNSTARTED","projects":[{"id":1114497,"name":"client-csmt-fault-testing-fault-tolerance-demo-solution-lambda-k8s-director","required":true,"title":"deploy-Dev-va6-faulttolerancedemo","avg_build_time":187.452228125,"status":"UNSTARTED","promotable":{"end_values_met":false,"job_status_met":false},"builds":[]}]}]}]}
[Pipeline] }
[Pipeline] // script
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Proceed_With_Create_And_Trigger_Build)
[Pipeline] script
[Pipeline] {
[Pipeline] httpRequest
HttpMethod: GET
URL: https://thirdpartyPipeline.solution.corp.mycompany.com/v2/csmt-fault-testing/fault-tolerance-demo/deploys/447244
Content-Type: application/json
authorization: *****
Sending request to url: https://thirdpartyPipeline.solution.corp.mycompany.com/v2/csmt-fault-testing/fault-tolerance-demo/deploys/447244
Response Code: HTTP/1.1 200 OK
Success code from [100‥399]
[Pipeline] echo
DeploymentId is 447244 :: Environment Id is 667925 :: Environment Name is Build :: Project Id is 1114499 :: StageId is 621647
[Pipeline] echo
Request Body JSON is {"environment_id":667925,"stage_id":621647,"projects":[{"id":1114499}]}
[Pipeline] sh
[Pipeline] }
[Pipeline] // script
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
an exception which occurred:
    in field com.cloudbees.groovy.cps.impl.BlockScopeEnv.locals
    in object com.cloudbees.groovy.cps.impl.BlockScopeEnv@3035b5d8
    in field com.cloudbees.groovy.cps.impl.CallEnv.caller
    in object com.cloudbees.groovy.cps.impl.FunctionCallEnv@55e62a96
    in field com.cloudbees.groovy.cps.impl.ProxyEnv.parent
    in object com.cloudbees.groovy.cps.impl.BlockScopeEnv@30fbee31
    in field com.cloudbees.groovy.cps.impl.ProxyEnv.parent
    in object com.cloudbees.groovy.cps.impl.BlockScopeEnv@30d6811e
    in field com.cloudbees.groovy.cps.impl.CallEnv.caller
    in object com.cloudbees.groovy.cps.impl.FunctionCallEnv@52ca4cf1
    in field com.cloudbees.groovy.cps.Continuable.e
    in object com.cloudbees.groovy.cps.Continuable@603018fd
    in field org.jenkinsci.plugins.workflow.cps.CpsThread.program
    in object org.jenkinsci.plugins.workflow.cps.CpsThread@31121814
    in field org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.threads
    in object org.jenkinsci.plugins.workflow.cps.CpsThreadGroup@3ddf4d44
    in object org.jenkinsci.plugins.workflow.cps.CpsThreadGroup@3ddf4d44
Caused: java.io.NotSerializableException: groovy.json.internal.LazyMap
    at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:926)
    at org.jboss.marshalling.river.BlockMarshaller.doWriteObject(BlockMarshaller.java:65)
    at org.jboss.marshalling.river.BlockMarshaller.writeObject(BlockMarshaller.java:56)
    at org.jboss.marshalling.MarshallerObjectOutputStream.writeObjectOverride(MarshallerObjectOutputStream.java:50)
    at org.jboss.marshalling.river.RiverObjectOutputStream.writeObjectOverride(RiverObjectOutputStream.java:179)
    at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:344)
    at java.util.HashMap.internalWriteEntries(HashMap.java:1793)
    at java.util.HashMap.writeObject(HashMap.java:1363)
    at sun.reflect.GeneratedMethodAccessor550.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.jboss.marshalling.reflect.JDKSpecific$SerMethods.callWriteObject(JDKSpecific.java:156)
    at org.jboss.marshalling.reflect.SerializableClass.callWriteObject(SerializableClass.java:191)
    at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:1028)
    at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:920)
    at org.jboss.marshalling.river.RiverMarshaller.doWriteFields(RiverMarshaller.java:1082)
    at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:1040)
    at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:920)
    at org.jboss.marshalling.river.RiverMarshaller.doWriteFields(RiverMarshaller.java:1082)
    at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:1040)
    at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:1019)
    at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:920)
    at org.jboss.marshalling.river.RiverMarshaller.doWriteFields(RiverMarshaller.java:1082)
    at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:1040)
    at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:1019)
    at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:920)
    at org.jboss.marshalling.river.RiverMarshaller.doWriteFields(RiverMarshaller.java:1082)
    at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:1040)
    at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:1019)
    at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:920)
    at org.jboss.marshalling.river.RiverMarshaller.doWriteFields(RiverMarshaller.java:1082)
    at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:1040)
    at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:1019)
    at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:920)
    at org.jboss.marshalling.river.RiverMarshaller.doWriteFields(RiverMarshaller.java:1082)
    at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:1040)
    at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:920)
    at org.jboss.marshalling.river.RiverMarshaller.doWriteFields(RiverMarshaller.java:1082)
    at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:1040)
    at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:920)
    at org.jboss.marshalling.river.BlockMarshaller.doWriteObject(BlockMarshaller.java:65)
    at org.jboss.marshalling.river.BlockMarshaller.writeObject(BlockMarshaller.java:56)
    at org.jboss.marshalling.MarshallerObjectOutputStream.writeObjectOverride(MarshallerObjectOutputStream.java:50)
    at org.jboss.marshalling.river.RiverObjectOutputStream.writeObjectOverride(RiverObjectOutputStream.java:179)
    at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:344)
    at java.util.concurrent.ConcurrentSkipListMap.writeObject(ConcurrentSkipListMap.java:1437)
    at sun.reflect.GeneratedMethodAccessor569.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.jboss.marshalling.reflect.JDKSpecific$SerMethods.callWriteObject(JDKSpecific.java:156)
    at org.jboss.marshalling.reflect.SerializableClass.callWriteObject(SerializableClass.java:191)
    at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:1028)
    at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:920)
    at org.jboss.marshalling.river.RiverMarshaller.doWriteFields(RiverMarshaller.java:1082)
    at org.jboss.marshalling.river.RiverMarshaller.doWriteSerializableObject(RiverMarshaller.java:1040)
    at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:920)
    at org.jboss.marshalling.AbstractObjectOutput.writeObject(AbstractObjectOutput.java:58)
    at org.jboss.marshalling.AbstractMarshaller.writeObject(AbstractMarshaller.java:111)
    at org.jenkinsci.plugins.workflow.support.pickles.serialization.RiverWriter.lambda$writeObject$0(RiverWriter.java:144)
    at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.GroovySandbox.runInSandbox(GroovySandbox.java:237)
    at org.jenkinsci.plugins.workflow.support.pickles.serialization.RiverWriter.writeObject(RiverWriter.java:143)
    at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.saveProgram(CpsThreadGroup.java:552)
    at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.saveProgram(CpsThreadGroup.java:529)
    at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.saveProgramIfPossible(CpsThreadGroup.java:516)
    
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
Finished: FAILURE

1 Ответ

0 голосов
/ 02 августа 2020

используйте JsonSlurperClassic вместо JsonSlurper

JsonSlurperClassic производит стандартный java HashMap, который может быть сериализован.

когда JsonSlurper производит LazyMap, который не сериализуемый

...