hanwen/go-fuse

fsstress still fails

rfjakob opened this issue · 6 comments

Reproducer at https://github.com/rfjakob/fsstress , testing against latest master (259481a) :

~/src/fsstress$ ./stress-loopback 
Recompile go-fuse loopback
Waiting for mount: x done, debug log goes to /tmp/log.txt
Starting fsstress loop
1
    fsstress.1 seed = 1461280698
    fsstress.2 seed = 1460765625
    fsstress.3 seed = 1461618057
    rm
rm: cannot remove ‘/tmp/b/fsstress.2/p11/d2XXXXXXXXXXX/dcXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/d1aXXXXXXXXXXXXX/f6aXXXXXXXXX’: No such file or directory
rm: cannot remove ‘/tmp/b/fsstress.2/p11/d2XXXXXXXXXXX/dcXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/d1aXXXXXXXXXXXXX’: Directory not empty
rm: cannot remove ‘/tmp/b/fsstress.2/pe/d3XXXXX/d8XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/f11XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX’: No such file or directory
rm: cannot remove ‘/tmp/b/fsstress.2/pe/d3XXXXX/d8XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/f7’: No such file or directory
rm: cannot remove ‘/tmp/b/fsstress.2/pe/d3XXXXX/d8XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX’: Directory not empty
rm: cannot remove ‘/tmp/b/fsstress.2/p5/d6XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/d29/d3fXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/f48X’: No such file or directory
rm: cannot remove ‘/tmp/b/fsstress.2/p5/d6XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/d29/d3fXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX’: Directory not empty
rm: cannot remove ‘/tmp/b/fsstress.2/p4/d7XXXXXXXX/d13XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/d31XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/d72XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/d1e/l2c’: No such file or directory
rm: cannot remove ‘/tmp/b/fsstress.2/p4/d7XXXXXXXX/d13XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/d31XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/d72XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/d1e’: Directory not empty

Should be finally fixed through https://review.gerrithub.io/#/c/274073/ . Please merge.

Hi there, just wanted to sync up on the status of "nodefs: get rid of recursiveConsiderDropInode".
As per the Gerrit comments, I will move the parent tracking down into nodefs, and it will track multiple parents as pathfs does today. The clientInodeMap stays in pathfs. Anything else?

Yah. I actually wanted to do the moving myaelf., but you'll probably beat
me to it anyway. If we find anything else we can do it in a follow up.

Might be tricky to find a good interface for the new functionality

Op ma 2 mei 2016 09:14 schreef rfjakob notifications@github.com:

Hi there, just wanted to sync up on the status of "nodefs: get rid of
recursiveConsiderDropInode" https://review.gerrithub.io/#/c/274073/.
As per the Gerrit comments, I will move the parent tracking down into
nodefs, and it will track multiple parents as pathfs does today. The
clientInodeMap stays in pathfs. Anything else?


You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub
#106 (comment)

Pushed to https://review.gerrithub.io/274105 . Nodefs needed only one additional function, Parent(), that returns a random parent, like pathInode.parent() did.

I left a fsstress loop running overnight and it turns out that the race that was mentioned in the TODO comment can actually be hit and caused "No such file or directory" errors in iteration 1.000 or so.
Commit https://review.gerrithub.io/#/c/278224/ fixes that and fsstress passed 10.000 iterations.

Closed by bd746dd . Thanks for the quick merge.