Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fsstress still fails #106

Closed
rfjakob opened this issue Apr 17, 2016 · 6 comments
Closed

fsstress still fails #106

rfjakob opened this issue Apr 17, 2016 · 6 comments

Comments

@rfjakob
Copy link
Contributor

rfjakob commented Apr 17, 2016

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
@rfjakob
Copy link
Contributor Author

rfjakob commented Apr 24, 2016

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

@rfjakob
Copy link
Contributor Author

rfjakob commented May 2, 2016

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?

@hanwen
Copy link
Owner

hanwen commented May 2, 2016

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 [email protected]:

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)

@rfjakob
Copy link
Contributor Author

rfjakob commented May 8, 2016

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

hanwen pushed a commit that referenced this issue May 23, 2016
Instead, drop the node from all parents in OnForget.

Fixes issue #106, stress-loopback (from
https://github.com/rfjakob/fsstress) now passes 40+ iterations.

Change-Id: I9a6bc08b88fc4f5a8bb63d449b29430e5b24ee7a
@rfjakob
Copy link
Contributor Author

rfjakob commented May 29, 2016

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.

@rfjakob
Copy link
Contributor Author

rfjakob commented May 30, 2016

Closed by bd746dd . Thanks for the quick merge.

@rfjakob rfjakob closed this as completed May 30, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants