On Sun, Aug 05, 2007 at 08:53:08PM +0200, Steinar H. Gunderson wrote: > Hm. I'm trying to reproduce it now, and I can perhaps do it once out of ten. > Sort of hard to track down...
Finally! I got it to be weird while I was stracing it. From there it was only a matter of remembering the following commit: | From dd087896285da9e160e13ee9f7d75381b67895e3 Mon Sep 17 00:00:00 2001 | From: J. Bruce Fields <[EMAIL PROTECTED]> | Date: Thu, 26 Jul 2007 16:30:46 -0400 | Subject: [PATCH] Use __fpurge to ensure single-line writes to cache files | | On a recent Debian/Sid machine, I saw libc retrying stdio writes that | returned write errors. The result is that if an export downcall returns | an error (which it can in normal operation, since it currently | (incorrectly) returns -ENOENT on any negative downcall), then subsequent | downcalls will write multiple lines (including the original line that | received the error). | | The result is that the server fails to respond to any rpc call that | refers to an unexported mount point (such as a readdir of a directory | containing such a mountpoint), so client commands hang. | | I don't know whether this libc behavior is correct or expected, but it | seems safest to add the __fpurge() (suggested by Neil) to ensure data is | thrown away. | | Signed-off-by: "J. Bruce Fields" <[EMAIL PROTECTED]> | Signed-off-by: Neil Brown <[EMAIL PROTECTED]> I uploaded the current git version to unstable earlier today, and it contains this fix. It sounds like it should fix your issue -- could you please give it a shot? /* Steinar */ -- Homepage: http://www.sesse.net/ -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

