Messages in this thread | | | Subject | Re: [NFS client] NFS locks not released on abnormal process termination | From | Philippe Troin <> | Date | 06 Dec 2003 11:50:55 -0800 |
| |
Kenny Simpson <theonetruekenny@yahoo.com> writes:
> I have a up-to-date RH9 (kernel 2.4.20-24.9, nfs utils 1.0.1-3.9) I'm using as > an NFS client (the server is a NetApp), and I'm trying to use advisory locking > of a file. > If the process that locks the file exits normally, the lock is released, and > everything is fine. > However, if the process aborts, the lock is left with no clear way to remove > it. I must remove the file to get rid of the lock. > > Details: > Here is a test case: > int main() > { > int fd = open("file", O_RDWR); > if (lockf( fd, F_TLOCK, 0 ) < 0) > .... print error message query owner > pause(); > close( fd ); > } > > If I run this, when it gets to the pause(), I can clearly see in /proc/locks > the process owning the lock. > If I then kill -ABRT <pid>, the entry in /proc/locks goes away, but the lock is > not removed from the server. > When I run the program a second time, the lock acquire failes, and it says the > (now defunct) old process still owns the lock. Since I cannot easily make > another process with the id of the original, I seem to have no way to > explicitly release the lock.
I've also seen this behavior witht the stock 2.4.22 and 2.4.23 kernels.
See the thread:
http://sourceforge.net/mailarchive/forum.php?thread_id=3213117&forum_id=4930
> I even ran ethereal to watch which NLM requests were being made. No unlock > request was ever sent, so I don't think this can be a server issue. > > Any ideas? Is it supposed to work this way?
No and no.
Phil. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |