When I see a bunch of `write: broken pipe ` errors for a process what does it mean ?











up vote
1
down vote

favorite












When I see a bunch of write: broken pipe errors for a process what does it mean ?



level=error msg="attach: stdout: write unix /var/run/docker.sock->@: write: broken pipe"



Does this mean this process needs more file descriptors ? or any other resource ? which way should I be looking at ?










share|improve this question







New contributor




user2062360 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
















  • 1




    usually it means someprogram in a program | someprogram type of pipe has gone away while program was writing to that pipe
    – thrig
    Nov 16 at 22:19















up vote
1
down vote

favorite












When I see a bunch of write: broken pipe errors for a process what does it mean ?



level=error msg="attach: stdout: write unix /var/run/docker.sock->@: write: broken pipe"



Does this mean this process needs more file descriptors ? or any other resource ? which way should I be looking at ?










share|improve this question







New contributor




user2062360 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
















  • 1




    usually it means someprogram in a program | someprogram type of pipe has gone away while program was writing to that pipe
    – thrig
    Nov 16 at 22:19













up vote
1
down vote

favorite









up vote
1
down vote

favorite











When I see a bunch of write: broken pipe errors for a process what does it mean ?



level=error msg="attach: stdout: write unix /var/run/docker.sock->@: write: broken pipe"



Does this mean this process needs more file descriptors ? or any other resource ? which way should I be looking at ?










share|improve this question







New contributor




user2062360 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











When I see a bunch of write: broken pipe errors for a process what does it mean ?



level=error msg="attach: stdout: write unix /var/run/docker.sock->@: write: broken pipe"



Does this mean this process needs more file descriptors ? or any other resource ? which way should I be looking at ?







linux docker socket






share|improve this question







New contributor




user2062360 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











share|improve this question







New contributor




user2062360 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









share|improve this question




share|improve this question






New contributor




user2062360 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









asked Nov 16 at 21:25









user2062360

61




61




New contributor




user2062360 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





New contributor





user2062360 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.






user2062360 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.








  • 1




    usually it means someprogram in a program | someprogram type of pipe has gone away while program was writing to that pipe
    – thrig
    Nov 16 at 22:19














  • 1




    usually it means someprogram in a program | someprogram type of pipe has gone away while program was writing to that pipe
    – thrig
    Nov 16 at 22:19








1




1




usually it means someprogram in a program | someprogram type of pipe has gone away while program was writing to that pipe
– thrig
Nov 16 at 22:19




usually it means someprogram in a program | someprogram type of pipe has gone away while program was writing to that pipe
– thrig
Nov 16 at 22:19










1 Answer
1






active

oldest

votes

















up vote
3
down vote













It means that someone has set the signal handler for SIGPIPE to SIG_IGN (ignore), and the error (trying to write into a pipe with no reader) is reported instead via the exit status of write(2).



In your case, the program at the other end of the Unix socket is most probably crashing or exiting unexpectedly. I'll look first into that.



It may be some sofisticated attack -- many badly written programs don't expect errors from write(2) and do not check its return value.



A process exiting because of a SIGPIPE is nothing special, and it's how things should work. This is how command | head -5 works; if command still wants to write stuff into the pipeline after head -5 has exited, it will receive a SIGPIPE, and everything will finely terminate. But if command installs a signal handler for SIGPIPE, or if the calling shell has set a trap '' PIPE (which will cause itself and its children to ignore the SIGPIPE signal), any write(2) into the pipe will return -1 with errno set to EPIPE ("broken pipe"). And sockets work the same as pipes in this regard.






share|improve this answer



















  • 1




    Never attribute to malice that...
    – Rui F Ribeiro
    Nov 16 at 23:55











Your Answer








StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "106"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});






user2062360 is a new contributor. Be nice, and check out our Code of Conduct.










 

draft saved


draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f482250%2fwhen-i-see-a-bunch-of-write-broken-pipe-errors-for-a-process-what-does-it-me%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes








up vote
3
down vote













It means that someone has set the signal handler for SIGPIPE to SIG_IGN (ignore), and the error (trying to write into a pipe with no reader) is reported instead via the exit status of write(2).



In your case, the program at the other end of the Unix socket is most probably crashing or exiting unexpectedly. I'll look first into that.



It may be some sofisticated attack -- many badly written programs don't expect errors from write(2) and do not check its return value.



A process exiting because of a SIGPIPE is nothing special, and it's how things should work. This is how command | head -5 works; if command still wants to write stuff into the pipeline after head -5 has exited, it will receive a SIGPIPE, and everything will finely terminate. But if command installs a signal handler for SIGPIPE, or if the calling shell has set a trap '' PIPE (which will cause itself and its children to ignore the SIGPIPE signal), any write(2) into the pipe will return -1 with errno set to EPIPE ("broken pipe"). And sockets work the same as pipes in this regard.






share|improve this answer



















  • 1




    Never attribute to malice that...
    – Rui F Ribeiro
    Nov 16 at 23:55















up vote
3
down vote













It means that someone has set the signal handler for SIGPIPE to SIG_IGN (ignore), and the error (trying to write into a pipe with no reader) is reported instead via the exit status of write(2).



In your case, the program at the other end of the Unix socket is most probably crashing or exiting unexpectedly. I'll look first into that.



It may be some sofisticated attack -- many badly written programs don't expect errors from write(2) and do not check its return value.



A process exiting because of a SIGPIPE is nothing special, and it's how things should work. This is how command | head -5 works; if command still wants to write stuff into the pipeline after head -5 has exited, it will receive a SIGPIPE, and everything will finely terminate. But if command installs a signal handler for SIGPIPE, or if the calling shell has set a trap '' PIPE (which will cause itself and its children to ignore the SIGPIPE signal), any write(2) into the pipe will return -1 with errno set to EPIPE ("broken pipe"). And sockets work the same as pipes in this regard.






share|improve this answer



















  • 1




    Never attribute to malice that...
    – Rui F Ribeiro
    Nov 16 at 23:55













up vote
3
down vote










up vote
3
down vote









It means that someone has set the signal handler for SIGPIPE to SIG_IGN (ignore), and the error (trying to write into a pipe with no reader) is reported instead via the exit status of write(2).



In your case, the program at the other end of the Unix socket is most probably crashing or exiting unexpectedly. I'll look first into that.



It may be some sofisticated attack -- many badly written programs don't expect errors from write(2) and do not check its return value.



A process exiting because of a SIGPIPE is nothing special, and it's how things should work. This is how command | head -5 works; if command still wants to write stuff into the pipeline after head -5 has exited, it will receive a SIGPIPE, and everything will finely terminate. But if command installs a signal handler for SIGPIPE, or if the calling shell has set a trap '' PIPE (which will cause itself and its children to ignore the SIGPIPE signal), any write(2) into the pipe will return -1 with errno set to EPIPE ("broken pipe"). And sockets work the same as pipes in this regard.






share|improve this answer














It means that someone has set the signal handler for SIGPIPE to SIG_IGN (ignore), and the error (trying to write into a pipe with no reader) is reported instead via the exit status of write(2).



In your case, the program at the other end of the Unix socket is most probably crashing or exiting unexpectedly. I'll look first into that.



It may be some sofisticated attack -- many badly written programs don't expect errors from write(2) and do not check its return value.



A process exiting because of a SIGPIPE is nothing special, and it's how things should work. This is how command | head -5 works; if command still wants to write stuff into the pipeline after head -5 has exited, it will receive a SIGPIPE, and everything will finely terminate. But if command installs a signal handler for SIGPIPE, or if the calling shell has set a trap '' PIPE (which will cause itself and its children to ignore the SIGPIPE signal), any write(2) into the pipe will return -1 with errno set to EPIPE ("broken pipe"). And sockets work the same as pipes in this regard.







share|improve this answer














share|improve this answer



share|improve this answer








edited Nov 16 at 22:44

























answered Nov 16 at 22:25









mosvy

4,333321




4,333321








  • 1




    Never attribute to malice that...
    – Rui F Ribeiro
    Nov 16 at 23:55














  • 1




    Never attribute to malice that...
    – Rui F Ribeiro
    Nov 16 at 23:55








1




1




Never attribute to malice that...
– Rui F Ribeiro
Nov 16 at 23:55




Never attribute to malice that...
– Rui F Ribeiro
Nov 16 at 23:55










user2062360 is a new contributor. Be nice, and check out our Code of Conduct.










 

draft saved


draft discarded


















user2062360 is a new contributor. Be nice, and check out our Code of Conduct.













user2062360 is a new contributor. Be nice, and check out our Code of Conduct.












user2062360 is a new contributor. Be nice, and check out our Code of Conduct.















 


draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f482250%2fwhen-i-see-a-bunch-of-write-broken-pipe-errors-for-a-process-what-does-it-me%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Morgemoulin

Scott Moir

Souastre