Forum Moderators: phranque

Message Too Old, No Replies

Broken pipe: write pipe_of_death

         

willeffects

6:57 pm on Feb 12, 2006 (gmt 0)

10+ Year Member



Log files are filled with this uintil I restart. This is the second day I've seen it happen. No other errors before or after. Nothing in /var/log/messages or mysql logs either.

Not much on google on this, any ideas?

Gentoo Linux 4d 2.6.10-gentoo-r6 #1
PHP 5.0.5-pl5-gentoo
Mysql 4.0.22
eAccelerator 0.9.4-rc1

Thanks,
Will

jdMorgan

12:27 am on Feb 16, 2006 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



There seems to be quite a bit of info if you just search for "broken pipe error".

It looks like a fairly common cause is that the program that is supposed to be reading the pipe is missing or has crashed.

But what I just posted is all I know about this... :)

Jim

StupidScript

7:28 pm on Feb 17, 2006 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



Pretty well-documented bug, however it is difficult to determine exactly what is causing it. In Apache's bugzilla the reports are marked "RESOLVED, INVALID", so they don't think it's an Apache issue. Here's an entry describing the issue (but you already know this :)

Summary: "Broken pipe: write pipe_of_death" after graceful restart
Product: Apache httpd-2
Version: 2.0.55
Platform: PC
OS/Version: Linux
Status: NEW
Severity: normal
Priority: P2
Component: prefork
AssignedTo: bugs@httpd.apache.org
ReportedBy: gacek@intertele.pl

In prefork MPM:

First graceful restart works OK.

But after invoking second (and later) graceful restart, apache is unable to kill
children by POD. Logs are filled with:

[Wed Dec 14 11:54:29 2005] [warn] (32)Broken pipe: write pipe_of_death
[Wed Dec 14 11:54:30 2005] [warn] (32)Broken pipe: write pipe_of_death
[Wed Dec 14 11:54:31 2005] [warn] (32)Broken pipe: write pipe_of_death

Bug present in 2.0.54, 2.0.55, compiled from source.

Several Linux bugzillas make mention of it very recently, but the ones I've seen are either "Closed, Won't Fix" or as above.

Here's a decent link [hypermail.linklord.com] that includes a patch from back in March '03.

what I see with HEAD is that the pipe gets file descriptor 2 (stderr), and we later make sure that the error log is file descriptor 2, resulting in one side of the pipe getting closed

I would guess that some other changes with closing descriptors let us get fd 2 for one of the pipe handles, and that this conceivably could have happened with all sorts of code changes.

Not much help, I'm afraid.

willeffects

10:19 pm on Feb 28, 2006 (gmt 0)

10+ Year Member



Just to give an update:

Turned out it was related to Eaccelerator. When it comes across a file that we havent narrowed down yet, for some reason it doesnt like it cache gets screwy and causes apache to start having child pid errors.

Resetting the cache fixes it until it hits the file.

Now to track down the file -- tough without decent error tracking for the problem

Thanks for all the help on this site!