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

memtx space:drop triggers assertion in transaction manager #7757

Closed
CuriousGeorgiy opened this issue Oct 1, 2022 · 0 comments · Fixed by #7758
Closed

memtx space:drop triggers assertion in transaction manager #7757

CuriousGeorgiy opened this issue Oct 1, 2022 · 0 comments · Fixed by #7758
Assignees
Labels
2.10 Target is 2.10 and all newer release/master branches bug Something isn't working memtx mvcc

Comments

@CuriousGeorgiy
Copy link
Member

Steps to reproduce

os.execute('rm -rf *.snap *.xlog *.vylog 512')

box.cfg{memtx_use_mvcc_engine = true}

s = box.schema.space.create('s')
s:create_index('pk')

s:insert{0}
s:get{0}
s:drop()

os.exit()

Actual behavior

Assertion failed: (story != NULL), function memtx_tx_track_read_story_slow, file memtx_tx.c, line 2754.

Expected behavior

Script successfully exits.

@CuriousGeorgiy CuriousGeorgiy added bug Something isn't working memtx teamC mvcc labels Oct 1, 2022
@CuriousGeorgiy CuriousGeorgiy self-assigned this Oct 1, 2022
CuriousGeorgiy added a commit to CuriousGeorgiy/tarantool that referenced this issue Oct 1, 2022
`memtx_tx_story_unlink_both` is called in two separate contexts: on space
delete and on rollback. In the former case we need to simply unlink the
story, while in the latter case we need to rebind read and gap trackers,
and, perhaps do some other logic in the future. Calling
`memtx_tx_story_unlink_both` in the former context can trigger assertion:
split the function and its helpers into two separate functions for each
case, grouping the common logic into third `*_common` functions.

Closes tarantool#7757

NO_DOC=bugfix
CuriousGeorgiy added a commit to CuriousGeorgiy/tarantool that referenced this issue Oct 1, 2022
`memtx_tx_story_unlink_both` is called in two separate contexts: on space
delete and on rollback. In the former case we need to simply unlink the
story, while in the latter case we need to rebind read and gap trackers,
and, perhaps do some other logic in the future. Calling
`memtx_tx_story_unlink_both` in the former context can trigger assertion:
split the function and its helpers into two separate functions for each
case, grouping the common logic into third `*_common` functions.

Closes tarantool#7757

NO_DOC=bugfix
CuriousGeorgiy added a commit to CuriousGeorgiy/tarantool that referenced this issue Oct 2, 2022
`memtx_tx_story_unlink_both` is called in two separate contexts: on space
delete and on rollback. In the former case we need to simply unlink the
story, while in the latter case we need to rebind read and gap trackers,
and, perhaps do some other logic in the future. Calling
`memtx_tx_story_unlink_both` in the former context can trigger assertion:
split the function and its helpers into two separate functions for each
case, grouping the common logic into third `*_common` functions.

Closes tarantool#7757

NO_DOC=bugfix
CuriousGeorgiy added a commit to CuriousGeorgiy/tarantool that referenced this issue Oct 3, 2022
`memtx_tx_story_unlink_both` is called in two separate contexts: on space
delete and on rollback. In the former case we need to simply unlink the
story, while in the latter case we need to rebind read and gap trackers,
and, perhaps do some other logic in the future. Calling
`memtx_tx_story_unlink_both` in the former context can trigger assertion:
split the function and its helpers into two separate functions for each
case, grouping the common logic into third `*_common` functions.

Closes tarantool#7757

NO_DOC=bugfix
CuriousGeorgiy added a commit to CuriousGeorgiy/tarantool that referenced this issue Oct 12, 2022
`memtx_tx_story_unlink_both` is called in two separate contexts: on space
delete and on rollback. In the former case we need to simply unlink the
story, while in the latter case we need to rebind read and gap trackers,
and, perhaps do some other logic in the future. Calling
`memtx_tx_story_unlink_both` in the former context can trigger assertion:
split the function and its helpers into two separate functions for each
case, grouping the common logic into third `*_common` functions.

Closes tarantool#7757

NO_DOC=bugfix
CuriousGeorgiy added a commit to CuriousGeorgiy/tarantool that referenced this issue Oct 28, 2022
`memtx_tx_story_unlink_both` is called in two separate contexts: on space
delete and on rollback. In the former case we need to simply unlink the
story, while in the latter case we need to rebind read and gap trackers,
and, perhaps do some other logic in the future. Calling
`memtx_tx_story_unlink_both` in the former context can trigger assertion:
split the function and its helpers into two separate functions for each
case, grouping the common logic into third `*_common` functions.

Closes tarantool#7757

NO_DOC=bugfix
CuriousGeorgiy added a commit to CuriousGeorgiy/tarantool that referenced this issue Oct 31, 2022
`memtx_tx_story_unlink_both` is called in two separate contexts: on space
delete and on rollback. In the former case we need to simply unlink the
story, while in the latter case we need to rebind read and gap trackers,
and, perhaps do some other logic in the future. Calling
`memtx_tx_story_unlink_both` in the former context can trigger assertion:
split the function and its helpers into two separate functions for each
case, grouping the common logic into third `*_common` functions.

Closes tarantool#7757

NO_DOC=bugfix
CuriousGeorgiy added a commit to CuriousGeorgiy/tarantool that referenced this issue Oct 31, 2022
`memtx_tx_story_unlink_both` is called in two separate contexts: on space
delete and on rollback. In the former case we need to simply unlink the
story, while in the latter case we need to rebind read and gap trackers,
and, perhaps do some other logic in the future. Calling
`memtx_tx_story_unlink_both` in the former context can trigger assertion:
split the function and its helpers into two separate functions for each
case, grouping the common logic into third `*_common` functions.

Closes tarantool#7757

NO_DOC=bugfix
alyapunov pushed a commit that referenced this issue Nov 9, 2022
`memtx_tx_story_unlink_both` is called in two separate contexts: on space
delete and on rollback. In the former case we need to simply unlink the
story, while in the latter case we need to rebind read and gap trackers,
and, perhaps do some other logic in the future. Calling
`memtx_tx_story_unlink_both` in the former context can trigger assertion:
split the function and its helpers into two separate functions for each
case, grouping the common logic into third `*_common` functions.

Closes #7757

NO_DOC=bugfix
alyapunov pushed a commit that referenced this issue Nov 9, 2022
`memtx_tx_story_unlink_both` is called in two separate contexts: on space
delete and on rollback. In the former case we need to simply unlink the
story, while in the latter case we need to rebind read and gap trackers,
and, perhaps do some other logic in the future. Calling
`memtx_tx_story_unlink_both` in the former context can trigger assertion:
split the function and its helpers into two separate functions for each
case, grouping the common logic into third `*_common` functions.

Closes #7757

NO_DOC=bugfix

(cherry picked from commit 21d3af4)
@alyapunov alyapunov added the 2.10 Target is 2.10 and all newer release/master branches label Nov 9, 2022
CuriousGeorgiy added a commit to CuriousGeorgiy/tarantool that referenced this issue Jun 16, 2023
`memtx_tx_story_unlink_both` is called in two separate contexts: on space
delete and on rollback. In the former case we need to simply unlink the
story, while in the latter case we need to rebind read and gap trackers,
and, perhaps do some other logic in the future. Calling
`memtx_tx_story_unlink_both` in the former context can trigger assertion:
split the function and its helpers into two separate functions for each
case, grouping the common logic into third `*_common` functions.

Closes tarantool#7757

NO_DOC=bugfix
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
2.10 Target is 2.10 and all newer release/master branches bug Something isn't working memtx mvcc
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants