Skip to content

[Filestore] emulate page faults in tests#6423

Closed
tdiff wants to merge 3 commits into
mainfrom
users/dmitrov/test-page-faults
Closed

[Filestore] emulate page faults in tests#6423
tdiff wants to merge 3 commits into
mainfrom
users/dmitrov/test-page-faults

Conversation

@tdiff

@tdiff tdiff commented Jul 3, 2026

Copy link
Copy Markdown
Collaborator

Notes

This change enables randomly restarting transactions in all tests using TTestEnv. Additionally, it allows to do the same in larger/integration tests and exposes new configuration in storage config.

Currently there is some gap in testing transactions restarted due to "page faults" in YDB, which reschedule and restart read transactions after some delay. As we did not find a way to trigger page faults in YDB, I extended previously existing failure injection to all Read* methods of TInMemoryIndexState.

Issue

#6467

@github-actions

github-actions Bot commented Jul 3, 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/tasks/,cloud/storage/ (test time: 261s): all tests PASSED for commit 8ee844e.

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

🔴 linux-x86_64-relwithdebinfo target: cloud/filestore/ (test time: 4521s): some tests FAILED for commit 8ee844e.

TESTS PASSED ERRORS FAILED FAILED BUILD SKIPPED MUTED?
3947 3902 0 45 0 0 0

🔴 linux-x86_64-relwithdebinfo target: cloud/filestore/ (test time: 59s): some tests FAILED for commit 8ee844e.

TESTS PASSED ERRORS FAILED FAILED BUILD SKIPPED MUTED?
55 14 0 41 0 0 0

🔴 linux-x86_64-relwithdebinfo target: cloud/filestore/ (test time: 46s): some tests FAILED for commit 8ee844e.

TESTS PASSED ERRORS FAILED FAILED BUILD SKIPPED MUTED?
47 6 0 41 0 0 0

@neihar neihar added rebase Add this label if you want to rebase your PR for test run recheck Add this label to relaunch checks, it will be automatically removed large-tests Launch large tests for PR labels Jul 4, 2026
@github-actions github-actions Bot removed the recheck Add this label to relaunch checks, it will be automatically removed label Jul 4, 2026
@github-actions

github-actions Bot commented Jul 4, 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/tasks/,cloud/storage/ (test time: 386s): all tests PASSED for commit 8ee844e.

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

🟢 linux-x86_64-relwithdebinfo target: cloud/disk_manager/ (test time: 1996s): all tests PASSED for commit 8ee844e.

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

🔴 linux-x86_64-relwithdebinfo target: cloud/filestore/ (test time: 6644s): some tests FAILED for commit 8ee844e.

TESTS PASSED ERRORS FAILED FAILED BUILD SKIPPED MUTED?
4144 4134 0 10 0 0 0

🔴 linux-x86_64-relwithdebinfo target: cloud/filestore/ (test time: 34s): some tests FAILED for commit 8ee844e.

TESTS PASSED ERRORS FAILED FAILED BUILD SKIPPED MUTED?
17 11 0 6 0 0 0

🔴 linux-x86_64-relwithdebinfo target: cloud/filestore/ (test time: 30s): some tests FAILED for commit 8ee844e.

TESTS PASSED ERRORS FAILED FAILED BUILD SKIPPED MUTED?
12 9 0 3 0 0 0

🟢 linux-x86_64-relwithdebinfo target: cloud/blockstore/ (test time: 11718s): all tests PASSED for commit 8ee844e.

TESTS PASSED ERRORS FAILED FAILED BUILD SKIPPED MUTED?
7254 7253 0 0 0 1 0

@neihar

neihar commented Jul 6, 2026

Copy link
Copy Markdown
Collaborator

https://github-actions-s3.storage.eu-north2.nebius.cloud/ydb-platform/nbs/PR-check/28689646890/1/nebius-x86-64/summary/filestore/2/ya-test.html#FAIL

sharding tests are failing, looks like after TX restart we just choose different shard. Doesn't look important, we can use nullptr rescheduler for sharding tests

Comment thread cloud/filestore/libs/storage/testlib/test_env.cpp Outdated
Comment thread cloud/filestore/libs/storage/core/tablet_tx_rescheduler.cpp Outdated
Comment thread cloud/filestore/libs/storage/tablet/tablet_database.cpp Outdated
Comment thread cloud/filestore/libs/storage/tablet/tablet_actor_writedata.cpp
Comment thread cloud/filestore/libs/storage/tablet/tablet_database.cpp
Comment thread cloud/filestore/libs/storage/tablet/tablet_actor_updateconfig.cpp Outdated
Comment thread cloud/filestore/libs/storage/core/tablet_tx_rescheduler.cpp
Comment thread cloud/filestore/libs/storage/tablet/tablet_database.cpp Outdated
Comment thread cloud/filestore/config/storage.proto Outdated
Comment thread cloud/filestore/config/storage.proto Outdated
@github-actions

github-actions Bot commented Jul 6, 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/tasks/,cloud/storage/ (test time: 449s): all tests PASSED for commit 6ed4c36.

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

@github-actions

github-actions Bot commented Jul 6, 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 Jul 6, 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/tasks/,cloud/storage/ (test time: 332s): all tests PASSED for commit 73c5d86.

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

🔴 linux-x86_64-relwithdebinfo target: cloud/disk_manager/ (test time: 2037s): some tests FAILED for commit 73c5d86.

TESTS PASSED ERRORS FAILED FAILED BUILD SKIPPED MUTED?
1930 1929 0 1 0 0 0

🟢 linux-x86_64-relwithdebinfo target: cloud/disk_manager/ (test time: 211s): all tests PASSED for commit 73c5d86.

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

@tdiff
tdiff force-pushed the users/dmitrov/test-page-faults branch from 64941ab to b4b3e2a Compare July 6, 2026 10:50
@github-actions

github-actions Bot commented Jul 6, 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 Jul 6, 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.

@tdiff
tdiff force-pushed the users/dmitrov/test-page-faults branch from 1b7eb43 to 61aeaa4 Compare July 6, 2026 11:20
@github-actions

github-actions Bot commented Jul 6, 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/tasks/,cloud/storage/ (test time: 327s): all tests PASSED for commit 61aeaa4.

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

🟢 linux-x86_64-relwithdebinfo target: cloud/disk_manager/ (test time: 2257s): all tests PASSED for commit 61aeaa4.

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

Comment thread cloud/filestore/config/storage.proto Outdated
Comment thread cloud/filestore/libs/storage/core/tablet.h Outdated
Comment thread cloud/filestore/libs/storage/tablet/tablet_actor_writedata.cpp
Comment thread cloud/filestore/libs/storage/core/tablet.h Outdated
@tdiff
tdiff force-pushed the users/dmitrov/test-page-faults branch 2 times, most recently from b581d8f to 188a204 Compare July 6, 2026 12:52
@tdiff tdiff changed the title WIP: NBSNEBIUS-1747 emulate page faults in tests WIP: emulate page faults in tests Jul 6, 2026
@github-actions

github-actions Bot commented Jul 6, 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/tasks/,cloud/storage/ (test time: 403s): all tests PASSED for commit 188a204.

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

🟢 linux-x86_64-relwithdebinfo target: cloud/disk_manager/ (test time: 2091s): all tests PASSED for commit 188a204.

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

@tdiff
tdiff force-pushed the users/dmitrov/test-page-faults branch from 188a204 to fd7f6e1 Compare July 6, 2026 13:45
@github-actions

github-actions Bot commented Jul 6, 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.

Comment thread cloud/filestore/libs/storage/core/tablet_tx_rescheduler.cpp Outdated
@tdiff
tdiff force-pushed the users/dmitrov/test-page-faults branch from 20f90c7 to 1946380 Compare July 6, 2026 14:17
@github-actions

github-actions Bot commented Jul 6, 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.

@tdiff
tdiff force-pushed the users/dmitrov/test-page-faults branch from 5fa6e7f to f036d34 Compare July 6, 2026 14:28
@github-actions

github-actions Bot commented Jul 6, 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/tasks/,cloud/storage/ (test time: 370s): all tests PASSED for commit f036d34.

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

Comment thread cloud/filestore/libs/storage/tablet/bench/tablet_bench.cpp Outdated
@tdiff
tdiff force-pushed the users/dmitrov/test-page-faults branch from f036d34 to 56603e3 Compare July 6, 2026 15:14
@github-actions

github-actions Bot commented Jul 9, 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/tasks/,cloud/storage/ (test time: 369s): all tests PASSED for commit f8e5f18.

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

🟢 linux-x86_64-relwithdebinfo target: cloud/disk_manager/ (test time: 1968s): all tests PASSED for commit f8e5f18.

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

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

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

🟢 linux-x86_64-relwithdebinfo target: cloud/blockstore/ (test time: 11894s): all tests PASSED for commit f8e5f18.

TESTS PASSED ERRORS FAILED FAILED BUILD SKIPPED MUTED?
7257 7256 0 0 0 1 0

@tdiff
tdiff force-pushed the users/dmitrov/test-page-faults branch from f8e5f18 to e3ba974 Compare July 9, 2026 15:14
@github-actions

github-actions Bot commented Jul 9, 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/tasks/,cloud/storage/ (test time: 378s): all tests PASSED for commit e3ba974.

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

🔴 linux-x86_64-relwithdebinfo target: cloud/disk_manager/ (test time: 2028s): some tests FAILED for commit e3ba974.

TESTS PASSED ERRORS FAILED FAILED BUILD SKIPPED MUTED?
1930 1929 0 1 0 0 0

🟢 linux-x86_64-relwithdebinfo target: cloud/disk_manager/ (test time: 216s): all tests PASSED for commit e3ba974.

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

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

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

🟢 linux-x86_64-relwithdebinfo target: cloud/blockstore/ (test time: 11939s): all tests PASSED for commit e3ba974.

TESTS PASSED ERRORS FAILED FAILED BUILD SKIPPED MUTED?
7258 7257 0 0 0 1 0

SvartMetal
SvartMetal previously approved these changes Jul 9, 2026
{
return false;
const bool ret = RandomGen.GenRandReal4() < Probability;
Triggered |= ret;

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

It’s strange that the value of Triggered can change from false to true, but not vice versa.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

It is for handling transactions doing multiple reads, where not-the-last-one read is failed. Assumption is made here that if any read() in transaction fails, the whole transaction should be rescheduled.

Transition true->false happens in Reset().

@tdiff
tdiff force-pushed the users/dmitrov/test-page-faults branch from e3ba974 to c272d72 Compare July 10, 2026 12:46
@github-actions

github-actions Bot commented Jul 10, 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/tasks/,cloud/storage/ (test time: 360s): all tests PASSED for commit c272d72.

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

@tdiff
tdiff force-pushed the users/dmitrov/test-page-faults branch from c272d72 to 7c0fbe8 Compare July 10, 2026 14:23
@github-actions

github-actions Bot commented Jul 10, 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/tasks/,cloud/storage/ (test time: 382s): all tests PASSED for commit 7c0fbe8.

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

🟢 linux-x86_64-relwithdebinfo target: cloud/disk_manager/ (test time: 2224s): all tests PASSED for commit 7c0fbe8.

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

🟢 linux-x86_64-relwithdebinfo target: cloud/filestore/ (test time: 7281s): all tests PASSED for commit 7c0fbe8.

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

🟢 linux-x86_64-relwithdebinfo target: cloud/blockstore/ (test time: 11921s): all tests PASSED for commit 7c0fbe8.

TESTS PASSED ERRORS FAILED FAILED BUILD SKIPPED MUTED?
7264 7263 0 0 0 1 0

{
using TTable = TIndexTabletSchema::FileSystem;

if (Y_UNLIKELY(ShouldFailReadInTest()))

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

looks very ugly

let's just make another implementation of IIndexTabletDatabase that would wrap another IIndexTabletDatabase with these if xxx -> return false things

@tdiff tdiff Jul 10, 2026

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

I was thinking about that, but there is also TIndexTabletDatabaseProxy inherited from TIndexTabletDatabase used in 50% of all places.

Also, TIndexTabletDatabaseProxy is used in some macros magic for method gen in PP that would be harder to customize:

    FILESTORE_TABLET_INDEX_RO_TRANSACTIONS(
        FILESTORE_IMPLEMENT_RO_TRANSACTION,
        TTxIndexTablet,
        TIndexTabletDatabaseProxy, <<<< 
        IIndexTabletDatabase);

So alternatives were:

  • add new "FailingTabledDatabase" and parametrize TIndexTabletDatabaseProxy with base class
  • re-implement TIndexTabletDatabaseProxy in a new class inherited from FailingTabledDatabase (copying its current logic).
  • just making the base class uglier.

The last option seemed to be less intrusive in the end, but we can reconsider this, wyt?

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

then in every place where it is created we will need ugly IF, so it will just change the place. Or do I miss something?

@neihar neihar Jul 10, 2026

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

we can do something like CreateIndexTabletDatabase and hide it in creation function. that way it will be nice in all sides. Will look definitely better. So, I am not sure that it worth it. But I would say, both options work for me, existing and proposed

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

I don't like these if statements either.

Let's do it the other way around.

@tdiff
tdiff force-pushed the users/dmitrov/test-page-faults branch from 7c0fbe8 to 5707bad Compare July 13, 2026 16:26
@github-actions

github-actions Bot commented Jul 13, 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.

@tdiff
tdiff force-pushed the users/dmitrov/test-page-faults branch from 5707bad to 21111c2 Compare July 13, 2026 16:34
@github-actions

github-actions Bot commented Jul 13, 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/tasks/,cloud/storage/ (test time: 483s): all tests PASSED for commit 21111c2.

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

🟢 linux-x86_64-relwithdebinfo target: cloud/disk_manager/ (test time: 2183s): all tests PASSED for commit 21111c2.

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

🟢 linux-x86_64-relwithdebinfo target: cloud/filestore/ (test time: 6883s): all tests PASSED for commit 21111c2.

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

🟢 linux-x86_64-relwithdebinfo target: cloud/blockstore/ (test time: 11691s): all tests PASSED for commit 21111c2.

TESTS PASSED ERRORS FAILED FAILED BUILD SKIPPED MUTED?
7265 7264 0 0 0 1 0

@tdiff
tdiff force-pushed the users/dmitrov/test-page-faults branch from 21111c2 to 6e7afae Compare July 15, 2026 14:47
tdiff added a commit that referenced this pull request Jul 16, 2026
…6521)

### Notes
This is a preliminary step required for fixes requested on review of the
#6423. Idea is to later provide
another implementation of that interface that would randomly fail read
operations.

This PR is part **1** of the following chain:
- Rename IIndexTabletDatabase to INodeIndexTabletDatabase <<< **We are
here**
Idea is that this name better reflects limited amount of methods exposed
by the inteface.
- Introduce a new IIndexTabletDatabase containing every public method
from TIndexTabletDatabase and makes TIndexTabletDatabase implement that
interface.
- Create TIndexTabletDatabase in tablet_actor_* via factory functions
instead of creating the objects on stack.

### Issue
#6467
tdiff added a commit that referenced this pull request Jul 16, 2026
### Notes
This is a preliminary step required for fixes requested on review of the
#6423. Idea is to later provide
another implementation of that interface that would randomly fail read
operations.

This PR is part **2** of the following chain:

- Rename IIndexTabletDatabase to INodeIndexTabletDatabase
- Introduce a new IIndexTabletDatabase containing every public method
from TIndexTabletDatabase and makes TIndexTabletDatabase implement that
interface. <<< **We are here**
- Create TIndexTabletDatabase in tablet_actor_* via factory functions
instead of creating the objects on stack.

### Issue
#6467
tdiff added a commit that referenced this pull request Jul 16, 2026
… functions (#6530)

### Notes
This is a preliminary step required for fixes requested on review of the
#6423. Idea is to later provide
another implementation of that interface that would randomly fail read
operations.

This PR is part **3** of the following chain:

- Rename IIndexTabletDatabase to INodeIndexTabletDatabase
- Introduce a new IIndexTabletDatabase containing every public method
from TIndexTabletDatabase and makes TIndexTabletDatabase implement that
interface.
- Create TIndexTabletDatabase in tablet_actor_* via factory functions
instead of creating the objects on stack. **<<< **We are here****

### Issue
#6467
@tdiff tdiff closed this Jul 16, 2026
tdiff added a commit that referenced this pull request Jul 17, 2026
### Notes
This change allows randomly to restart transactions in tests using
TTestEnv. Random page faults are enabled for a subset of unit and
integration tests.

Currently there is some gap in testing transactions restarted due to
"page faults" in YDB, which reschedule and restart read transactions
after some delay. As we did not find a way to trigger page faults in
YDB, I extended previously existing failure injection to all Read*
methods of TInMemoryIndexState.

This PR is a rework of #6423.

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

Labels

large-tests Launch large tests for PR rebase Add this label if you want to rebase your PR for test run

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants