shell execution produces "couldn't flush stdout" error

3,264 views
Skip to first unread message

Matthias

unread,
Sep 4, 2013, 4:30:04 AM9/4/13
to jenkins...@googlegroups.com
Hello,

when using pipes in shell scripts I often get the error mentioned in the subject line.

To reproduce the issue add an "execute shell" build step to a new job and run the following:

echo replace e by a | sed 's_e_a_g' | echo done

This might not make much sense - but it generates the error "couldn't flush stdout" while this does not happen when executing the same in a terminal.


The jenkins console output produces:


[EnvInject] - Loading node environment variables.
Building on master in workspace /home/jenkins/build-server/jobs/test.sed/workspace
[workspace] $ /bin/sh -xe /tmp/hudson7236481234921041257.sh
+ echo replace e by a
+ echo done
done
+ sed s_e_a_g
sed: couldn't flush stdout: Broken pipe
Finished: SUCCESS


best regards,
Matthias

John Russell

unread,
Sep 5, 2013, 2:52:54 PM9/5/13
to jenkins...@googlegroups.com
I find I have much better luck in "Execute shell" build steps if I put

#!/bin/bash at the top.

It tends to make the behavior much more consistent. YMMV

Matthias

unread,
Sep 8, 2013, 3:32:47 PM9/8/13
to jenkins...@googlegroups.com
Hello,

thank you for the suggestion - but I already tried that but it didn't change the behaviour.

John Russell

unread,
Sep 9, 2013, 9:56:16 AM9/9/13
to jenkins...@googlegroups.com
Try adding a noop command after the pipeline. When I run that locally, done is printed long before it exits. Its possible sed is still running when jenkins tries to exit the script.


--
You received this message because you are subscribed to a topic in the Google Groups "Jenkins Users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/jenkinsci-users/niSVMnTTjz8/unsubscribe.
To unsubscribe from this group and all its topics, send an email to jenkinsci-use...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Message has been deleted

jjac...@zymergen.com

unread,
Mar 2, 2017, 7:14:57 PM3/2/17
to Jenkins Users
I'm seeing something similar whenever I try to use pipes in a jenkins pipeline sh .  I've asked a similar question on SO http://stackoverflow.com/questions/42568201/jenkins-pipeline-sh-does-not-seem-to-respect-pipe-in-shell-command.  I can't seem to get piped shell commands to work, which seriously limits the power of what you can do.
Reply all
Reply to author
Forward
0 new messages