Skip to content

issue-6874: deleting SessionEvents api and impl - #7514

Open
qkrorlqr wants to merge 2 commits into
mainfrom
users/qkrorlqr/delete-session-events
Open

qkrorlqr wants to merge 2 commits into
mainfrom
users/qkrorlqr/delete-session-events

Conversation

@qkrorlqr

Copy link
Copy Markdown
Collaborator

Notes

This PR implements the following item from #7423:

will delete the obsolete SessionEvents mechanism - it's incompatible with sharded filesystems (because filestore-vhost <-> filesystem session management happens via the main tablet only) and it's more fragile because it implies not invalidation events but metadata update events (which is also incompatible with the fuse / virtiofs API - this API talks in terms of invalidations)

Issue

#6874

@qkrorlqr qkrorlqr added large-tests Launch large tests for PR filestore Add this label to run only cloud/filestore build and tests on PR labels Oct 11, 2026
@github-actions

github-actions Bot commented Oct 11, 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.

@github-actions

github-actions Bot commented Oct 12, 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: 7493s): all tests PASSED for commit 3f79d40.

TESTS PASSED ERRORS FAILED FAILED BUILD SKIPPED MUTED?
5021 5020 0 0 0 1 0

@qkrorlqr

Copy link
Copy Markdown
Collaborator Author

temporarily agreed to merge w/o right team's approval

@qkrorlqr

Copy link
Copy Markdown
Collaborator Author

Claude:

Verdict: no serious issues. Nothing that carries an ID drifts. I checked every place where an identifier is persisted, sent over the wire, or generated from list position:

EFileStoreRequest (persisted in profile logs). Values are explicit. Slots 22, 23 and 48 become Reserved1/2/3 rather than being removed, so everything from ResetSession = 24 through AsyncDestroyHandle = 68 and MAX = 69 keeps its number. RequestNames[] keeps the old strings at those indices, and the static_assert on its size still holds. Old profile logs therefore decode with the same names. auth_scheme.cpp handles the Reserved values, so its switch can’t hit an unexpected value.
TEvService actor event IDs. Every event is written as EvBegin + N, not generated from the macro lists. 67–70 become EvReserved1..4, and EvRegisterLocalFileStore = EvBegin + 71 and everything after it is unchanged. Taking SubscribeSession out of FILESTORE_SERVICE_REQUESTS_FWD doesn’t renumber anything, because no event ID comes from macro order.
Macro lists. The only other code that iterates FILESTORE_REQUESTS is dump_ut.cpp. It looks names up by enum value, so it is unaffected.
Protobuf. The removed messages (TSessionEvent, TSubscribeSession*, TGetSessionEvents*) are deleted whole, and no remaining message referenced them, so no field numbers in surviving messages change. Removing gRPC/HTTP methods only affects those methods, since routing is by method name, not index.
Tablet state and commit IDs. GenerateEventId used the per-session LastEvent counter, not the tablet’s shared LastStep. So removing it doesn’t change commit-ID generation. LastEvent/NotifyEvents were in-memory only and never in the tablet DB schema, so there is no schema change. No tablet-private or TEvIndexTablet event IDs are touched.
Per-request counters still register over 0..FileStoreRequestCount. The reserved slots keep their old sensor names, so existing sensors don’t shift either.

The only behavioural change is during a rolling upgrade: a caller of the removed RPCs would get an “unimplemented” error. Since you said the API isn’t used, that doesn’t matter here.

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

Labels

filestore Add this label to run only cloud/filestore build and tests on PR large-tests Launch large tests for PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants