Skip to content

[Filestore] issue-5432: add basic async open support (tablet)#6589

Open
budevg wants to merge 2 commits into
mainfrom
users/evgenybud/async-open-pr2
Open

[Filestore] issue-5432: add basic async open support (tablet)#6589
budevg wants to merge 2 commits into
mainfrom
users/evgenybud/async-open-pr2

Conversation

@budevg

@budevg budevg commented Jul 23, 2026

Copy link
Copy Markdown
Collaborator

@budevg budevg changed the title users/evgenybud/async open pr2 [Filestore] issue-5432: add basic async open support (tablet) Jul 23, 2026
@budevg budevg added large-tests Launch large tests for PR filestore Add this label to run only cloud/filestore build and tests on PR asan Launch builds with address sanitizer along with regular build tsan Launch builds with thread sanitizer along with regular build msan Launch builds with memory sanitizer along with regular build ubsan Launch builds with undefined behaviour sanitizer along with regular build labels Jul 23, 2026
@github-actions

github-actions Bot commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

Note

This is an automated comment that will be appended during run.

Note

All workloads for linux-x86_64-release-msan have completed.

Tip

Planned checks for linux-x86_64-release-msan.

🟢 linux-x86_64-release-msan target: cloud/filestore/ (test time: 4891s): all tests PASSED for commit 520c018.

TESTS PASSED ERRORS FAILED FAILED BUILD SKIPPED MUTED?
3738 3738 0 0 0 0 0

@github-actions

github-actions Bot commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

Note

This is an automated comment that will be appended during run.

Note

All workloads for linux-x86_64-relwithdebinfo have completed.

Tip

Planned checks for linux-x86_64-relwithdebinfo.

🟢 linux-x86_64-relwithdebinfo target: cloud/filestore/ (test time: 7164s): all tests PASSED for commit 520c018.

TESTS PASSED ERRORS FAILED FAILED BUILD SKIPPED MUTED?
4417 4417 0 0 0 0 0

@github-actions

github-actions Bot commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

Note

This is an automated comment that will be appended during run.

Note

All workloads for linux-x86_64-release-ubsan have completed.

Tip

Planned checks for linux-x86_64-release-ubsan.

🟢 linux-x86_64-release-ubsan target: cloud/filestore/ (test time: 4727s): all tests PASSED for commit 520c018.

TESTS PASSED ERRORS FAILED FAILED BUILD SKIPPED MUTED?
3833 3833 0 0 0 0 0

@github-actions

github-actions Bot commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

Note

This is an automated comment that will be appended during run.

Note

All workloads for linux-x86_64-release-tsan have completed.

Tip

Planned checks for linux-x86_64-release-tsan.

🟢 linux-x86_64-release-tsan target: cloud/filestore/ (test time: 5667s): all tests PASSED for commit 520c018.

TESTS PASSED ERRORS FAILED FAILED BUILD SKIPPED MUTED?
3773 3773 0 0 0 0 0

@budevg
budevg requested review from SvartMetal and qkrorlqr July 23, 2026 10:05
@github-actions

github-actions Bot commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

Note

This is an automated comment that will be appended during run.

Note

All workloads for linux-x86_64-release-asan have completed.

Tip

Planned checks for linux-x86_64-release-asan.

🟢 linux-x86_64-release-asan target: cloud/filestore/ (test time: 4914s): all tests PASSED for commit 520c018.

TESTS PASSED ERRORS FAILED FAILED BUILD SKIPPED MUTED?
3783 3783 0 0 0 0 0

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 520c0189ab

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment on lines +538 to +541
const bool safeAsync = hasLocalHandle &&
isReadOnly &&
Config->GetAsyncCreateHandleEnabled() &&
args.Request.GetAllowAsyncCreateHandle();

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Require async destroy before acknowledging async opens

When AsyncCreateHandleEnabled is enabled but neither async-destroy flag is, the tablet can still return HandleCreatedAsync to any client that sets AllowAsyncCreateHandle. If that client then closes with a normal DestroyHandle before the queued ConfirmCreateHandle runs, the close removes the handle and the later confirm recreates it, leaking an open handle; the FUSE side already guards against this exact ordering, but the server-side decision should enforce the same requirement before advertising an async-created handle.

Useful? React with 👍 / 👎.

xxx(ReadData, __VA_ARGS__) \
xxx(WriteData, __VA_ARGS__) \
xxx(AllocateData, __VA_ARGS__) \
xxx(ConfirmCreateHandle, __VA_ARGS__) \

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Preserve existing request type numbers

This macro feeds the numeric EFileStoreRequest enum that is written to profile/event logs, so inserting ConfirmCreateHandle here shifts Fsync, FsyncDir, endpoint, and private request ids (the updated dump test now expects Fsync to move from 46 to 47). Existing logs and any consumers that decode stored request type numbers will be mislabelled after this change; add the new request without renumbering the existing values.

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

asan Launch builds with address sanitizer along with regular build filestore Add this label to run only cloud/filestore build and tests on PR large-tests Launch large tests for PR msan Launch builds with memory sanitizer along with regular build tsan Launch builds with thread sanitizer along with regular build ubsan Launch builds with undefined behaviour sanitizer along with regular build

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant