This is the mail archive of the
glibc-bugs@sourceware.org
mailing list for the glibc project.
[Bug nscd/16639] systemctl start nscd.service should return non-zero status on failure
- From: "cvs-commit at gcc dot gnu.org" <sourceware-bugzilla at sourceware dot org>
- To: glibc-bugs at sourceware dot org
- Date: Mon, 03 Mar 2014 17:51:20 +0000
- Subject: [Bug nscd/16639] systemctl start nscd.service should return non-zero status on failure
- Auto-submitted: auto-generated
- References: <bug-16639-131 at http dot sourceware dot org/bugzilla/>
https://sourceware.org/bugzilla/show_bug.cgi?id=16639
--- Comment #1 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot gnu.org> ---
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".
The branch, master has been updated
via 532a60357ef4c5852cc1bf836cfd9d6f093ef204 (commit)
from d6285c9f0b3972369356554727b1ede5a6eb0731 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=532a60357ef4c5852cc1bf836cfd9d6f093ef204
commit 532a60357ef4c5852cc1bf836cfd9d6f093ef204
Author: Siddhesh Poyarekar <siddhesh@redhat.com>
Date: Mon Mar 3 22:51:39 2014 +0530
nscd: Improved support for tracking startup failure in nscd service (BZ
#16639)
Currently, the nscd parent process parses commandline options and
configuration, forks on startup and immediately exits with a success.
If the child process encounters some error after this, it goes
undetected and any services started up after it may have to repeatedly
check to make sure that the nscd service did actually start up and is
serving requests.
To make this process more reliable, I have added a pipe between the
parent and child process, through which the child process sends a
notification to the parent informing it of its status. The parent
waits for this status and once it receives it, exits with the
corresponding exit code. So if the child service sends a success
status (0), the parent exits with a success status. Similarly for
error conditions, the child sends the non-zero status code, which the
parent passes on as the exit code.
This, along with setting the nscd service type to forking in its
systemd configuration file, allows systemd to be certain that the nscd
service is ready and is accepting connections.
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 22 +++++++++++
nscd/connections.c | 48 ++++++++++++-----------
nscd/nscd.c | 108 +++++++++++++++++++++++++++++++++++++++++++++++++--
nscd/nscd.h | 2 +
nscd/selinux.c | 18 ++++----
5 files changed, 161 insertions(+), 37 deletions(-)
--
You are receiving this mail because:
You are on the CC list for the bug.