box: fix space:bsize() handling on space alter
During building an index in background, some transaction can perform a dml request that affects space size (e.g. a replace), but the size will remain the same, because bsize is moved from the old space to the new space in memtx_space_prepare_alter() prior to space_execute_dml(). Fix this issue by calling space_finish_alter() in alter_space_do(). In fact, this patch partially reverts commit 9ec3b1a4 ("alter: zap space_vtab::commit_alter"). NO_DOC=bugfix Closes #9247
Showing
- changelogs/unreleased/gh-9247-fix-space-bsize-handling-on-space-alter.md 4 additions, 0 deletions...leased/gh-9247-fix-space-bsize-handling-on-space-alter.md
- src/box/alter.cc 1 addition, 0 deletionssrc/box/alter.cc
- src/box/blackhole.c 1 addition, 0 deletionssrc/box/blackhole.c
- src/box/memtx_space.c 18 additions, 2 deletionssrc/box/memtx_space.c
- src/box/session_settings.c 1 addition, 0 deletionssrc/box/session_settings.c
- src/box/space.c 7 additions, 0 deletionssrc/box/space.c
- src/box/space.h 14 additions, 0 deletionssrc/box/space.h
- src/box/sysview.c 1 addition, 0 deletionssrc/box/sysview.c
- src/box/vinyl.c 1 addition, 0 deletionssrc/box/vinyl.c
- test/box-luatest/gh_9247_bsize_on_concurrent_dml_and_alter_test.lua 118 additions, 0 deletions...uatest/gh_9247_bsize_on_concurrent_dml_and_alter_test.lua
Loading
Please register or sign in to comment