From: Georgy Kirichenko <georgy@tarantool.org> To: tarantool-patches@dev.tarantool.org Subject: [Tarantool-patches] [PATCH 4/6] vinyl: do not insert vy_tx twice into writers list Date: Tue, 19 Nov 2019 19:04:55 +0300 [thread overview] Message-ID: <2a163e6a73264afa64e5db2844b65f355e4d805f.1574178520.git.georgy@tarantool.org> (raw) In-Reply-To: <cover.1574178520.git.georgy@tarantool.org> If some cases (like there is not data update in case of recovery) a vy_tx could be inserted twice into the corresponding writers list as the vy_tx would have empty log. So check that a vy_tx is already inserted. This was not detected before as we did not do recovery preserving transaction boundaries before. Part of #980 --- src/box/vy_tx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/box/vy_tx.c b/src/box/vy_tx.c index d092e0cdb..990c0df85 100644 --- a/src/box/vy_tx.c +++ b/src/box/vy_tx.c @@ -895,7 +895,7 @@ vy_tx_begin_statement(struct vy_tx *tx, struct space *space, void **savepoint) } assert(tx->state == VINYL_TX_READY); tx->last_stmt_space = space; - if (stailq_empty(&tx->log)) + if (stailq_empty(&tx->log) && rlist_empty(&tx->in_writers)) rlist_add_entry(&tx->xm->writers, tx, in_writers); *savepoint = stailq_last(&tx->log); return 0; -- 2.24.0
next prev parent reply other threads:[~2019-11-19 16:05 UTC|newest] Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-11-19 16:04 [Tarantool-patches] [PATCH 0/6] Synchronous replication preparation Georgy Kirichenko 2019-11-19 16:04 ` [Tarantool-patches] [PATCH 1/6] recovery: do not throw an error Georgy Kirichenko 2019-11-23 13:45 ` Vladislav Shpilevoy 2019-11-19 16:04 ` [Tarantool-patches] [PATCH 2/6] coio: do not htrow an exception Georgy Kirichenko 2019-11-23 13:45 ` Vladislav Shpilevoy 2019-11-19 16:04 ` [Tarantool-patches] [PATCH 3/6] xstream: get rid of " Georgy Kirichenko 2019-11-23 13:45 ` Vladislav Shpilevoy 2019-11-19 16:04 ` Georgy Kirichenko [this message] 2019-11-19 16:04 ` [Tarantool-patches] [PATCH 5/6] box: improve recovery journal Georgy Kirichenko 2019-11-23 13:46 ` Vladislav Shpilevoy 2019-11-19 16:04 ` [Tarantool-patches] [PATCH 6/6] recovery: follow transaction boundaries while recovery or join Georgy Kirichenko 2019-11-23 13:46 ` Vladislav Shpilevoy 2019-11-20 17:15 ` [Tarantool-patches] [PATCH 0/6] Synchronous replication preparation Konstantin Osipov 2019-11-23 13:45 ` Vladislav Shpilevoy
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=2a163e6a73264afa64e5db2844b65f355e4d805f.1574178520.git.georgy@tarantool.org \ --to=georgy@tarantool.org \ --cc=tarantool-patches@dev.tarantool.org \ --subject='Re: [Tarantool-patches] [PATCH 4/6] vinyl: do not insert vy_tx twice into writers list' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox