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

Allow partial repeat of readdir response #965

Merged
merged 7 commits into from
Dec 10, 2024

Conversation

vladem
Copy link
Contributor

@vladem vladem commented Aug 1, 2024

Description of change

When user application gets interrupted in a readdir syscall the underlying chain of readdir fuse requests gets reset to an offset which is considered stale by Mountpoint. In that case Mountpoint still completes the interrupted readdir request, but kernel partially discards the response. We already cache the last response, so we can use it to serve the request which follows the interrupt.

Relevant issues: #955

Does this change impact existing behavior?

This is not a breaking change. Previously an error was returned, now it'll be handled properly.


By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license and I agree to the terms of the Developer Certificate of Origin (DCO).

@vladem vladem had a problem deploying to PR integration tests August 1, 2024 15:13 — with GitHub Actions Failure
@vladem vladem had a problem deploying to PR integration tests August 1, 2024 15:13 — with GitHub Actions Failure
@vladem vladem had a problem deploying to PR integration tests August 1, 2024 15:13 — with GitHub Actions Failure
@vladem vladem had a problem deploying to PR integration tests August 1, 2024 15:13 — with GitHub Actions Failure
@vladem vladem had a problem deploying to PR integration tests August 1, 2024 15:13 — with GitHub Actions Failure
@vladem vladem had a problem deploying to PR integration tests August 1, 2024 15:13 — with GitHub Actions Failure
@vladem vladem had a problem deploying to PR integration tests August 1, 2024 15:13 — with GitHub Actions Failure
@vladem vladem temporarily deployed to PR integration tests August 1, 2024 17:00 — with GitHub Actions Inactive
@vladem vladem temporarily deployed to PR integration tests August 1, 2024 17:00 — with GitHub Actions Inactive
@vladem vladem temporarily deployed to PR integration tests August 1, 2024 17:00 — with GitHub Actions Inactive
@vladem vladem temporarily deployed to PR integration tests August 1, 2024 17:00 — with GitHub Actions Inactive
@vladem vladem temporarily deployed to PR integration tests August 1, 2024 17:00 — with GitHub Actions Inactive
@vladem vladem temporarily deployed to PR integration tests August 1, 2024 17:00 — with GitHub Actions Inactive
@vladem vladem temporarily deployed to PR integration tests August 1, 2024 17:00 — with GitHub Actions Inactive
@vladem vladem marked this pull request as ready for review August 1, 2024 18:18
@dannycjones dannycjones self-requested a review August 2, 2024 08:18
Copy link
Contributor

@dannycjones dannycjones left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice!

Thanks for adding the new test case. I think it can be easily adapted to cover some edge cases (see comment).

Do you think this deserves a new changelog entry?

mountpoint-s3/src/fs.rs Outdated Show resolved Hide resolved
mountpoint-s3/tests/fs.rs Outdated Show resolved Hide resolved
@vladem vladem force-pushed the listdir-interrupted branch from 6879eb4 to e2680a2 Compare August 2, 2024 11:47
@vladem vladem had a problem deploying to PR integration tests August 2, 2024 11:47 — with GitHub Actions Failure
@vladem vladem had a problem deploying to PR integration tests August 2, 2024 11:47 — with GitHub Actions Failure
@vladem vladem had a problem deploying to PR integration tests August 2, 2024 11:47 — with GitHub Actions Failure
@vladem vladem had a problem deploying to PR integration tests August 2, 2024 11:47 — with GitHub Actions Failure
@vladem vladem had a problem deploying to PR integration tests August 2, 2024 11:47 — with GitHub Actions Failure
@vladem vladem had a problem deploying to PR integration tests August 2, 2024 11:47 — with GitHub Actions Failure
@vladem vladem had a problem deploying to PR integration tests August 2, 2024 11:47 — with GitHub Actions Failure
@vladem vladem temporarily deployed to PR integration tests August 2, 2024 12:15 — with GitHub Actions Inactive
@vladem vladem temporarily deployed to PR integration tests August 2, 2024 12:15 — with GitHub Actions Inactive
@vladem vladem temporarily deployed to PR integration tests August 2, 2024 12:15 — with GitHub Actions Inactive
@vladem vladem temporarily deployed to PR integration tests August 2, 2024 12:15 — with GitHub Actions Inactive
Vladislav Volodkin and others added 7 commits December 10, 2024 16:14
Signed-off-by: Vladislav Volodkin <[email protected]>
Signed-off-by: Vladislav Volodkin <[email protected]>
Signed-off-by: Vladislav Volodkin <[email protected]>
Signed-off-by: Vlad Volodkin <[email protected]>
Signed-off-by: Vlad Volodkin <[email protected]>
@vladem vladem force-pushed the listdir-interrupted branch from 61980fd to c457347 Compare December 10, 2024 16:14
@vladem vladem temporarily deployed to PR integration tests December 10, 2024 16:14 — with GitHub Actions Inactive
@vladem vladem temporarily deployed to PR integration tests December 10, 2024 16:14 — with GitHub Actions Inactive
@vladem vladem temporarily deployed to PR integration tests December 10, 2024 16:14 — with GitHub Actions Inactive
@vladem vladem temporarily deployed to PR integration tests December 10, 2024 16:14 — with GitHub Actions Inactive
@vladem vladem temporarily deployed to PR integration tests December 10, 2024 16:14 — with GitHub Actions Inactive
@vladem vladem temporarily deployed to PR integration tests December 10, 2024 16:14 — with GitHub Actions Inactive
@vladem vladem temporarily deployed to PR integration tests December 10, 2024 16:14 — with GitHub Actions Inactive
@vladem vladem requested a review from dannycjones December 10, 2024 16:33
@vladem vladem enabled auto-merge December 10, 2024 16:33
Copy link
Contributor

@dannycjones dannycjones left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@vladem vladem added this pull request to the merge queue Dec 10, 2024
Merged via the queue into awslabs:main with commit 441a502 Dec 10, 2024
23 checks passed
@vladem vladem deleted the listdir-interrupted branch December 10, 2024 17:18
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

Successfully merging this pull request may close these issues.

3 participants