In case long publish (more than 300s) - pipeline failed with error:
ERROR: java.lang.InterruptedException
Short/small submits - no errors
Network activity show normal submit (200+ mbit/s)
p4d logs - brocken pipe
Timeout period looks like not on p4 submit, but on all stack of p4publish groovy commands (ex: 21:02:56 - 21:07:56)
[Pipeline] p4publish 21:02:56 ... p4 client -o XXX + 21:02:56 ... p4 info + 21:02:56 ... p4 client -o XXX + 21:02:56 ... p4 client -i + 21:02:56 ... client: XXX 21:02:56 ... p4 client -o XXX + 21:02:56 ... p4 info + 21:02:56 21:02:56 P4 Task: establishing connection. 21:02:56 ... server: XXX:1666 21:02:56 ... node: XXX 21:02:56 21:02:56 P4 Task: reconcile files to changelist. 21:02:56 ... p4 revert -k //XXX/... + 21:02:56 ... p4 sync -k //XXX/... + 21:02:56 ... p4 reconcile -e -a -f -d //XXX/... + 21:02:59 ... p4 opened -CXXX //XXX/... + 21:02:59 duration: 0m 2s 21:02:59 21:02:59 P4 Task: publish files to Perforce. 21:02:59 ... p4 change -i + 21:02:59 ... p4 change -o 343 + 21:02:59 ... pending change: 343 21:02:59 ... p4 reopen -c343 -t+S1 //XXX/... + 21:02:59 ... p4 opened -CXXX //XXX/... + 21:02:59 ... ... add //XXX ...1500+ files 21:02:59 ... ... add //XXX 21:03:00 ... p4 describe -s 343 + 21:03:00 ... p4 fixes -c343 + 21:03:00 ... p4 submit -i + 21:03:00 [Pipeline] } [Pipeline] // node [Pipeline] } [Pipeline] // stage [Pipeline] node 21:07:56 Running on node_name in c:\jenkins-web\workspace\main_build [Pipeline] { [Pipeline] echo [Pipeline] error [Pipeline] } [Pipeline] // node [Pipeline] } [Pipeline] // timestamps [Pipeline] End of Pipeline ERROR: java.lang.InterruptedException Finished: FAILURE
Pipeline(fragment):
try { stage('Push results'){ node(WN_NODE) { def p4_spec_name = "jenkins-${env.NODE_NAME}-${env.JOB_NAME}-bin" def p4_mapping = """XXX""" def p4_description = "${build_desc} ${job_tag}" p4publish credential: p4_credentials, publish: [$class: 'SubmitImpl', delete: true, description: p4_description, onlyOnSuccess: false, reopen: false, purge: '1'], workspace: [$class: 'ManualWorkspaceImpl', charset: 'auto', name: p4_spec_name, pinHost: false, spec: [allwrite: true, clobber: false, compress: false, line: 'LOCAL', locked: false, modtime: false, rmdir: true, streamName: '', view: p4_mapping]] } } } catch (err){ node(WN_NODE){ error "${err}" } }
p4sync - no error on long/big sync > 300s
After failure - in perforce remain good changelist, p4v submit his without problem and timeout limits.
In p4 credentials RPC_SOCKET_SO_TIMEOUT_NICK == 0
Jenkins docker-compose.yml
version: '2' services: jenkins: image: "jenkins:latest" restart: always ports: - 50000:50000 - 8080:8080 volumes: - ./jenkins_home:/var/jenkins_home logging: driver: json-file options: max-size: "10m" max-file: "3" environment: - JAVA_OPTS="-Duser.timezone=Europe/Kiev"
docker logs at this period:
May 22, 2017 9:00:35 PM org.jenkinsci.plugins.p4.PerforceScm guessBrowser INFO: Unable to guess repository browser. May 22, 2017 9:07:56 PM org.jenkinsci.plugins.workflow.job.WorkflowRun finish INFO: main_build #29 completed: FAILURE
- is related to
-
JENKINS-55209 p4 groovy commands with 300 second timeout
- Closed