8000 wal_sync() does not wait for prepared transactions waiting for journal size threshold · Issue #11118 · tarantool/tarantool · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

wal_sync() does not wait for prepared transactions waiting for journal size threshold #11118

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

Closed
nshy opened this issue Feb 10, 2025 · 0 comments · Fixed by #11315
Closed

wal_sync() does not wait for prepared transactions waiting for journal size threshold #11118

nshy opened this issue Feb 10, 2025 · 0 comments · Fixed by #11315
Assignees
Labels
2.11 Target is 2.11 and all newer release/master branches 3.2 Target is 3.2 and all newer release/master branches 3.3 Target is 3.3 and all newer release/master branches bug Something isn't working

Comments

@nshy
Copy link
Contributor
nshy commented Feb 10, 2025

We expect that wal_sync() will flush all prepared transactions on disk, but this is not the case for transactions waiting for journal size threshold. In particular in vinyl we flush prepared transactions before starting index build. We do not have a rollback trigger for these transactions thus we make sure if they will be rolled back we don't need to undo their effect. So if there is a prepared transaction waiting for journal size threshold and it will be rolled back it effect will stay. So secondary index will be inconsistent.

@nshy nshy added the bug Something isn't working label Feb 10, 2025
@nshy nshy added 2.11 Target is 2.11 and all newer release/master branches 3.2 Target is 3.2 and all newer release/master branches 3.3 Target is 3.3 and all newer release/master branches labels Mar 31, 2025
nshy added a commit to nshy/tarantool that referenced this issue Mar 31, 2025
`wal_sync()` is expected to flush all prepared txns on disk. Currently
it is not so because we do not flush txns waiting in WAL queue. AFAIU
the issue exists for all the places where we use `wal_sync()` (except
for `box_wait_limbo_acked()` where we already flush WAL queue). The test
is only added for the vinyl index build as there are explicit tickets for
that.

Closes tarantool#11118
Closes tarantool#11119

NO_DOC=bugfix
sergepetrenko pushed a commit that referenced this issue Apr 3, 2025
`wal_sync()` is expected to flush all prepared txns on disk. Currently
it is not so because we do not flush txns waiting in WAL queue. AFAIU
the issue exists for all the places where we use `wal_sync()` (except
for `box_wait_limbo_acked()` where we already flush WAL queue). The test
is only added for the vinyl index build as there are explicit tickets for
that.

Closes #11118
Closes #11119

NO_DOC=bugfix
github-actions bot pushed a commit that referenced this issue Apr 3, 2025
`wal_sync()` is expected to flush all prepared txns on disk. Currently
it is not so because we do not flush txns waiting in WAL queue. AFAIU
the issue exists for all the places where we use `wal_sync()` (except
for `box_wait_limbo_acked()` where we already flush WAL queue). The test
is only added for the vinyl index build as there are explicit tickets for
that.

Closes #11118
Closes #11119

NO_DOC=bugfix

(cherry picked from commit af5f033)
github-actions bot pushed a commit that referenced this issue Apr 3, 2025
`wal_sync()` is expected to flush all prepared txns on disk. Currently
it is not so because we do not flush txns waiting in WAL queue. AFAIU
the issue exists for all the places where we use `wal_sync()` (except
for `box_wait_limbo_acked()` where we already flush WAL queue). The test
is only added for the vinyl index build as there are explicit tickets for
that.

Closes #11118
Closes #11119

NO_DOC=bugfix

(cherry picked from commit af5f033)
github-actions bot pushed a commit that referenced this issue Apr 3, 2025
`wal_sync()` is expected to flush all prepared txns on disk. Currently
it is not so because we do not flush txns waiting in WAL queue. AFAIU
the issue exists for all the places where we use `wal_sync()` (except
for `box_wait_limbo_acked()` where we already flush WAL queue). The test
is only added for the vinyl index build as there are explicit tickets for
that.

Closes #11118
Closes #11119

NO_DOC=bugfix

(cherry picked from commit af5f033)
sergepetrenko pushed a commit that referenced this issue Apr 3, 2025
`wal_sync()` is expected to flush all prepared txns on disk. Currently
it is not so because we do not flush txns waiting in WAL queue. AFAIU
the issue exists for all the places where we use `wal_sync()` (except
for `box_wait_limbo_acked()` where we already flush WAL queue). The test
is only added for the vinyl index build as there are explicit tickets for
that.

Closes #11118
Closes #11119

NO_DOC=bugfix

(cherry picked from commit af5f033)
sergepetrenko pushed a commit that referenced this issue Apr 3, 2025
`wal_sync()` is expected to flush all prepared txns on disk. Currently
it is not so because we do not flush txns waiting in WAL queue. AFAIU
the issue exists for all the places where we use `wal_sync()` (except
for `box_wait_limbo_acked()` where we already flush WAL queue). The test
is only added for the vinyl index build as there are explicit tickets for
that.

Closes #11118
Closes #11119

NO_DOC=bugfix

(cherry picked from commit af5f033)
sergepetrenko pushed a commit that referenced this issue Apr 3, 2025
`wal_sync()` is expected to flush all p
61A8
repared txns on disk. Currently
it is not so because we do not flush txns waiting in WAL queue. AFAIU
the issue exists for all the places where we use `wal_sync()` (except
for `box_wait_limbo_acked()` where we already flush WAL queue). The test
is only added for the vinyl index build as there are explicit tickets for
that.

Closes #11118
Closes #11119

NO_DOC=bugfix

(cherry picked from commit af5f033)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
2.11 Target is 2.11 and all newer release/master branches 3.2 Target is 3.2 and all newer release/master branches 3.3 Target is 3.3 and all newer release/master branches bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant
0