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
-
If you are getting this on the master (no remote connection to the slave) then I am not sure what is breaking the connection. Perhaps your Perforce administrator has set restrictions on the Jenkins process or user? You might be best talking directly with Perforce Support.
You will need to let them know the version of P4D, network topology (i.e. do you have any brokers, proxies) are there any clues in the server logs. Any configurables set ('p4 configure show').