Bug#673347: nfs-common: idmapd crashes due to race condition
Package: nfs-common
Version: 1:1.2.2-4squeeze3
Severity: important
Tags: squeeze patch
Hit this on a relatively busy NFSv4 client having had a much more lightly
loaded client talking to the same server for several months without
issues.
rpc.idmapd crashes causing a failure to lookup username/group
information for files; less than ideal when that's home directories.
Some investigation found:
https://bugzilla.redhat.com/show_bug.cgi?id=684308
pointing to a race condition between doing an fcntl F_SETSIG and
F_NOTIFY. I've applied the patch from that bug report and been running
successfully for over a month (having previously had rpc.idmapd die
every couple of days). debdiff of what I'm using attached.
-- System Information:
Debian Release: 6.0.5
APT prefers stable-updates
APT policy: (500, 'stable-updates'), (500, 'stable')
Architecture: amd64 (x86_64)
Kernel: Linux 2.6.32-5-amd64 (SMP w/16 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Versions of packages nfs-common depends on:
ii adduser 3.112+nmu2 add and remove users and groups
ii initscripts 2.88dsf-13.1+squeeze1 scripts for initializing and shutt
ii libc6 2.11.3-3 Embedded GNU C Library: Shared lib
ii libcap2 1:2.19-3 support for getting/setting POSIX.
ii libcomerr2 1.41.12-4stable1 common error description library
ii libevent-1.4-2 1.4.13-stable-1 An asynchronous event notification
ii libgssapi-krb5-2 1.8.3+dfsg-4squeeze5 MIT Kerberos runtime libraries - k
ii libgssglue1 0.1-4 mechanism-switch gssapi library
ii libk5crypto3 1.8.3+dfsg-4squeeze5 MIT Kerberos runtime libraries - C
ii libkrb5-3 1.8.3+dfsg-4squeeze5 MIT Kerberos runtime libraries
ii libnfsidmap2 0.23-2 An nfs idmapping library
ii librpcsecgss3 0.19-2 allows secure rpc communication us
ii libwrap0 7.6.q-19 Wietse Venema's TCP wrappers libra
ii lsb-base 3.2-23.2squeeze1 Linux Standard Base 3.2 init scrip
ii netbase 4.45 Basic TCP/IP networking system
ii portmap 6.0.0-2 RPC port mapper
ii ucf 3.0025+nmu1 Update Configuration File: preserv
nfs-common recommends no packages.
nfs-common suggests no packages.
-- no debconf information
diff -Nru nfs-utils-1.2.2/debian/changelog nfs-utils-1.2.2/debian/changelog
--- nfs-utils-1.2.2/debian/changelog 2011-12-30 09:59:58.000000000 -0800
+++ nfs-utils-1.2.2/debian/changelog 2012-05-17 16:19:02.000000000 -0700
@@ -1,3 +1,9 @@
+nfs-utils (1:1.2.2-4squeeze3) stable; urgency=high
+
+ * Fix rpc.idmapd dying.
+
+ -- Jonathan McDowell <noodles@hp.com> Mon, 16 Apr 2012 13:44:20 -0700
+
nfs-utils (1:1.2.2-4squeeze2) stable; urgency=high
* Fix CVE-2011-1749: Avoid leaving a corrupt mtab file (Closes: #629420)
diff -Nru nfs-utils-1.2.2/debian/patches/18-fix-idmapd-crash.patch nfs-utils-1.2.2/debian/patches/18-fix-idmapd-crash.patch
--- nfs-utils-1.2.2/debian/patches/18-fix-idmapd-crash.patch 1969-12-31 16:00:00.000000000 -0800
+++ nfs-utils-1.2.2/debian/patches/18-fix-idmapd-crash.patch 2012-05-17 16:18:31.000000000 -0700
@@ -0,0 +1,18 @@
+
+Fix issue with rpc.idmapd dying under load conditions due to a race condition
+in registering for signal notification.
+
+Taken from https://bugzilla.redhat.com/show_bug.cgi?id=684308
+
+--- nfs-utils-1.2.2/utils/idmapd/idmapd.c.orig 2010-02-18 04:35:00.000000000 -0800
++++ nfs-utils-1.2.2/utils/idmapd/idmapd.c 2012-04-16 13:43:47.000000000 -0700
+@@ -766,8 +766,8 @@ nfsopen(struct idmap_client *ic)
+ } else {
+ event_set(&ic->ic_event, ic->ic_fd, EV_READ, nfscb, ic);
+ event_add(&ic->ic_event, NULL);
+- fcntl(ic->ic_dirfd, F_SETSIG, 0);
+ fcntl(ic->ic_dirfd, F_NOTIFY, 0);
++ fcntl(ic->ic_dirfd, F_SETSIG, 0);
+ if (verbose > 0)
+ xlog_warn("Opened %s", ic->ic_path);
+ }
diff -Nru nfs-utils-1.2.2/debian/patches/series nfs-utils-1.2.2/debian/patches/series
--- nfs-utils-1.2.2/debian/patches/series 2011-12-30 09:57:46.000000000 -0800
+++ nfs-utils-1.2.2/debian/patches/series 2012-05-17 16:18:43.000000000 -0700
@@ -9,3 +9,4 @@
15-mountd-fix-path-comparison-for-v4-crossmnt.patch
16-negotiate-des-only.patch
17-fix-CVE-2011-1749.patch
+18-fix-idmapd-crash.patch
Reply to: