jabberd does not close its stdin/stdout/stderr
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Jabberd |
Fix Released
|
Low
|
Tomasz Sterna |
Bug Description
This bug was initially reported in Fedora:
https:/
We've recently come across a problem with jabberd. When we start its
init.d/jabberd from a script which reads its stdout, the last read never
finishes (until the jabberd is killed). All the jabberd daemons should probably
close its stdouts/stderrs.
Version-Release number of selected component (if applicable):
# rpm -q jabberd
jabberd-
How reproducible:
Deterministic.
Steps to Reproduce:
1. service jabberd stop; perl -e 'open F,"service jabberd start|"; my @out=<F>;
close F; print @out;'
Actual results:
The perl process never finishes, until you run service jabberd stop in another
terminal. The service process is in a zombie meanwhile because the parent
cannot reap it with waitpid because it's still blocked on that pipe read.
Expected results:
The perl process should finish just fine, with jabberd daemons running, just
like (let's say) httpd.
jabberd uses stdout for debugging output.