Description of problem: We got hanging NFS4 mounts. The NFS mount points recovered after restarting rpcidmapd on the server (Running 5.4). We investigated that rpcidmapd always stopped after it spit out this message in the log: Dec 11 14:44:31 filer rpc.idmapd[1581]: nfsdcb: id '-2' too big! Version-Release number of selected component (if applicable): nfs-utils-1.0.9-42.el5 nfs-utils-lib-1.0.8-7.6.el5 How reproducible: In very short time Steps to Reproduce: 1. Install above mentioned nfs-utils version 2. Put the server under stress 3. Actual results: nfs4 stops responding Expected results: should run with no interruption Additional info: We could recover from this situation by reverting to older nfs-utils and nfs-utils-lib versions. (nfs-utils-1.0.9-40.el5 nfs-utils-lib-1.0.8-7.2.z2)
Here is the code in question: im.im_conv = IDMAP_CONV_IDTONAME; if (getfield(&bp, buf1, sizeof(buf1)) == -1) { idmapd_warnx("nfsdcb: bad id in upcall\n"); goto out; } tmp = strtoul(buf1, (char **)NULL, 10); im.im_id = (u_int32_t)tmp; if ((tmp == ULONG_MAX && errno == ERANGE) || (unsigned long)im.im_id != tmp) { idmapd_warnx("nfsdcb: id '%s' too big!\n", buf1); goto out; } the '(unsigned long)im.im_id != tmp' is causing the failure which does not look right... Shouldn't it be something like 'im.im_id != (unsigned int)tmp' or no comparison at all?
This looks like a probable duplicate of bug 453804. Could you update nfs-utils-lib to a more recent version and let us know if it's reproducible?
*** This bug has been marked as a duplicate of bug 453804 ***