I think we have a winner!
storeAufsClose checks to see if there are pending operations on the file
and sets a flag, rather than initiates a close, if there are.
storeAufsReadDone checks the flag just before returning, but
storeAufsOpenDone does not.
I'm not sure what triggers an open without a read (an IMS request for a
stale object, I suspect -- this squid gets an unusually high number of
them), but it hasn't misplaced an FD in the 4 hours I've run this patch so
far. I guess I'll know for sure tomorrow.
-- Brian
--- store_io_aufs.c Sun Sep 2 22:32:30 2001
+++ store_io_aufs.c.new Sun Sep 2 18:15:46 2001
@@ -296,6 +296,8 @@
storeAufsKickWriteQueue(sio);
else if (sio->mode == O_RDONLY)
storeAufsKickReadQueue(sio);
+ if (aiostate->flags.close_request)
+ storeAufsIOCallback(sio, errflag);
debug(78, 3) ("storeAufsOpenDone: exiting\n");
}
Received on Sun Sep 02 2001 - 20:46:27 MDT
This archive was generated by hypermail pre-2.1.9 : Tue Dec 09 2003 - 17:02:01 MST