Thanks for digging into this Phil. It sounds like the right fix is
to send the segment name as the position, and get rid of the pcache
entirely. This avoids the pcache miss issue, and allows it to work
over server restarts, which was really the purpose of the pcache anyway.
In the meantime, it might help your test case to crank the limits on
the pcache way up.
-sam
On Sep 7, 2007, at 8:46 AM, Phil Carns wrote:
I just stumbled on to something while trying to clean up my
previous tests. If I have the pcache disabled, then rm -rf of a
large directory never works right, even if all of the other
clients are idle. It is possible that we have the opposite
problem? That actually the pcache works fine it but it is the
pcache miss case that is broken?
I'll switch back and forth a couple more times to confirm, but
I'm pretty sure this is consistent.
Yeah possibly. It would make sense that ls while rm -rf would
cause that too. The pcache is FIFO, so the pos->name entries
might be getting FIFO-ed out of the cache by the entries that ls
is adding. When the pcache misses, it uses the step_to function
based on the value of the position (walks through all the
entries). It could just be a bug in that code, but honestly the
readdir with removes always confuses me when the index is meant
to keep track of the position. How did it work in the previous
impl when we had a db per directory?
-sam
I confirmed that it seems to be a problem with the "pcache miss"
path. If I disable the pcache, then rm -rf of a directory with just
50 entries fails. Everything works fine if the pcache is enabled.
Here is an example:
# mkdir /mnt/pvfs2/testdir6
# for i in `seq 1 50`; do cp /etc/hosts /mnt/pvfs2/testdir6/$i; done
# rm -rf /mnt/pvfs2/testdir6
rm: cannot remove directory `/mnt/pvfs2/testdir6': Directory not empty
# ls /mnt/pvfs2/testdir6
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
# ls /mnt/pvfs2/testdir6 |wc
18 18 54
-Phil
_______________________________________________
Pvfs2-developers mailing list
[email protected]
http://www.beowulf-underground.org/mailman/listinfo/pvfs2-developers