Project

General

Profile

Bug #165

crash on startup on SIGPIPE

Added by Anonymous about 11 years ago. Updated over 8 years ago.

Status:
Fixed
Priority:
Normal
Assignee:
-
Category:
core
Target version:
-
Start date:
Due date:
% Done:

0%

Missing in 1.5.x:

Description

lighttpd receives SIGPIPE if it tries to output warning about invalid config directive. if lighttpd is started from output capturing program like initlog, then lighttpd receives SIGPIPE, because lighttpd has daemonized() and after that initlog closes connected STDERR and exits itself.

i believe moving daemonize afterwards the log_error_open() could prevent this problem.


stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=814, ...}) = 0
write(2, "2005-06-29 15:54:19: (server.c.633) WARNING: unknown config-key: index-file.extensions (ignored) \n", 98) = -1 EPIPE (Broken pipe)
--- SIGPIPE (Broken pipe) @ 0 (0) ---
Process 26854 detached

to reproduce put this into lighttpd/1.3.14 config:


index-file.extensions = (
   "index.html",
)

and start lighttpd from initlog:


strace -s5000 -ff nice -n 0 initlog -c  "lighttpd -f /etc/lighttpd/lighttpd.conf" 

-- Elan Ruusamäe <glen

lighttpd-1.4.15-stderr.patch View (1.07 KB) spillgroup, 2007-07-11 14:48

Associated revisions

Revision a18086bc (diff)
Added by glen over 8 years ago

- open log immediately after daemonizing, fixes SIGPIPEs on startup (#165)

git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@2049 152afb58-edef-0310-8abb-c4023f1b3aa9

History

#1 Updated by spillgroup about 9 years ago

We faced the SIGPIPE problem too and use the attached patch to circumvent the problem. By the time Lighty spawned its child process it shouldn't be writing to stderr anymore, so we call log_error_open() directly AFTER daemonize()'ing.

#2 Updated by glen over 8 years ago

  • Status changed from New to Fixed
  • Resolution set to fixed

Changeset r2049 commited

Also available in: Atom