[syslog-ng] [BUG] non-existing program destinations
Ortwin Glück
odi at odi.ch
Thu Dec 27 13:25:44 CET 2007
Hi,
I discovered a problem in syslog-ng-2.0.6. In my Gentoo installation there were
some default program destinations configured:
destination mail-alert { program("/usr/local/bin/syslog-mail"); };
destination mail-alert-perl { program("/usr/local/bin/syslog-mail-perl"); };
But these programs do not exist in my installation. strace shows that syslog-ng
is looping while trying to start these processes:
--- SIGCHLD (Child exited) @ 0 (0) ---
sigreturn() = ? (mask now [])
close(6) = 0
fcntl64(13, F_GETFL) = 0x1 (flags O_WRONLY)
fcntl64(13, F_SETFL, O_WRONLY|O_NONBLOCK) = 0
waitpid(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 127}], WNOHANG) = 19922
close(7) = 0
pipe([6, 7]) = 0
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD,
child_tidptr=0xb7ca2708) = 19927
--- SIGCHLD (Child exited) @ 0 (0) ---
sigreturn() = ? (mask now [])
close(6) = 0
fcntl64(7, F_GETFL) = 0x1 (flags O_WRONLY)
fcntl64(7, F_SETFL, O_WRONLY|O_NONBLOCK) = 0
waitpid(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 127}], WNOHANG) = 19924
close(8) = 0
pipe([6, 8]) = 0
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD,
child_tidptr=0xb7ca2708) = 19928
--- SIGCHLD (Child exited) @ 0 (0) ---
sigreturn() = ? (mask now [])
close(6) = 0
fcntl64(8, F_GETFL) = 0x1 (flags O_WRONLY)
fcntl64(8, F_SETFL, O_WRONLY|O_NONBLOCK) = 0
waitpid(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 127}], WNOHANG) = 19926
close(13) = 0
pipe([6, 13]) = 0
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD,
child_tidptr=0xb7ca2708) = 19929
Sending it a HUP makes the situation even worse (I think it just starts another
loop) and syslog-ng consumes considerable CPU time after that. syslog-ng ought
to check if the file exists before trying clone(). Maybe also a warning would
help to spot the config problem (there is none, even with the -d flag). But like
this it is really hard to find the problem.
Cheers
Ortwin Glück
More information about the syslog-ng
mailing list