Page 1 of 1

Broken Pipe on large Dataset

Posted: Wed Apr 24, 2013 1:51 am
by tsdjim
We are sending a number of files in one step using fromdsn curl and gzip and the job has been working fine, however for one file yesterday we got the following messages. Could it be a ssh timeout problem
(Note: ssh_tunnel is set false and coz release 220):

COZLOG Messages:
cozagent ?21:51? Waiting for completion...
cozserver(70)?E?: ./OutputMux.h(118) - write_fully(1, 28078ED8, 4) - ?140? EDC5140I Broken pipe. (errno2=0x74520442)
cozserver(70)?E?: ./OutputMux.h(118) - write_fully(1, 28041300, 5) - ?140? EDC5140I Broken pipe. (errno2=0x76697242)
cozserver(70)?W?: Exception: 103 sending exit code packet(rc=103) to client

Job Log Messages:
BPXP023I THREAD 27C1F70000000000, IN PROCESS 33555551, WAS 422
27C1E60000000000, IN PROCESS 67109982, UID 1111, IN JOB OPSSSSSL.

Re: Broken Pipe on large Dataset

Posted: Wed Apr 24, 2013 2:19 pm
by dovetail
The first error reason code is:

Code: Select all

>bpxmtext 74520442                                                                                                                                         
JRSocketRstReceived: A RST was received on the socket connection.

Action: The socket connection was dropped.  Verify the status of the remote
partner.  Then re-attempt the socket connection.
This means that the z/OS side saw socket connection(s) being lost. It could be a network problem, or perhaps the remote processes were terminated for some unknown reason.
I assume that there aren't any other messages in the log from the remote side, which makes sense if the network connection was lost.

Re: Broken Pipe on large Dataset

Posted: Sat Apr 27, 2013 12:06 pm
by tsdjim
Each command I issue has multiple pipes similar to the following, is there a way to trap the error so that I know form which specific part of the pipes (fromdsn or gzip or curl) the error occured.

fromdsn.....| gzip... | curl.......

Re: Broken Pipe on large Dataset

Posted: Mon Apr 29, 2013 7:46 am
by dovetail
If you get an error, the message written to stderr should be clear as to which command failed.

But the exit code from the pipeline of commands will be the last command unless you do this:

set -o pipefail

For more information, see: ... lines.html

But in your case, it seems that the network pipes that redirect the stdout and stderr output of your shell script are being disconnected. This would indicate that either there was a network problem or that the remote job was terminated.

Can you reproduce this problem?
Is there anything in syslog on the remote system?