From: Vladimir Davydov <vdavydov.dev@gmail.com> To: tarantool-patches@freelists.org Subject: [PATCH 5/5] xlog: assure xlog is opened and closed in the same thread Date: Sat, 29 Dec 2018 00:21:51 +0300 [thread overview] Message-ID: <398940b925b4b9c1ae0cc67452a2d0684cbb754f.1546030880.git.vdavydov.dev@gmail.com> (raw) In-Reply-To: <cover.1546030880.git.vdavydov.dev@gmail.com> In-Reply-To: <cover.1546030880.git.vdavydov.dev@gmail.com> xlog and xlog_cursor must be opened and closed in the same thread, because they use cord's slab allocator. Follow-up #3910 --- src/box/xlog.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/box/xlog.c b/src/box/xlog.c index 71b9b7cd..881dcd3b 100644 --- a/src/box/xlog.c +++ b/src/box/xlog.c @@ -791,6 +791,8 @@ xlog_clear(struct xlog *l) static void xlog_destroy(struct xlog *xlog) { + assert(xlog->obuf.slabc == &cord()->slabc); + assert(xlog->zbuf.slabc == &cord()->slabc); obuf_destroy(&xlog->obuf); obuf_destroy(&xlog->zbuf); ZSTD_freeCCtx(xlog->zctx); @@ -1816,6 +1818,7 @@ xlog_tx_cursor_next_row(struct xlog_tx_cursor *tx_cursor, int xlog_tx_cursor_destroy(struct xlog_tx_cursor *tx_cursor) { + assert(tx_cursor->rows.slabc == &cord()->slabc); ibuf_destroy(&tx_cursor->rows); return 0; } @@ -2049,6 +2052,7 @@ xlog_cursor_close(struct xlog_cursor *i, bool reuse_fd) assert(xlog_cursor_is_open(i)); if (i->fd >= 0 && !reuse_fd) close(i->fd); + assert(i->rbuf.slabc == &cord()->slabc); ibuf_destroy(&i->rbuf); if (i->state == XLOG_CURSOR_TX) xlog_tx_cursor_destroy(&i->tx_cursor); -- 2.11.0
next prev parent reply other threads:[~2018-12-28 21:21 UTC|newest] Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-12-28 21:21 [PATCH 0/5] Fix a couple of replication breakdown issues Vladimir Davydov 2018-12-28 21:21 ` [PATCH 1/5] recovery: stop writing to xstream on system error Vladimir Davydov 2018-12-29 9:09 ` [tarantool-patches] " Konstantin Osipov 2018-12-29 9:50 ` Vladimir Davydov 2018-12-29 10:57 ` Vladimir Davydov 2018-12-29 12:08 ` Konstantin Osipov 2018-12-28 21:21 ` [PATCH 2/5] relay: do not try to scan xlog if exiting Vladimir Davydov 2018-12-29 9:14 ` [tarantool-patches] " Konstantin Osipov 2018-12-29 9:53 ` Vladimir Davydov 2018-12-28 21:21 ` [PATCH 3/5] relay: cleanup error handling Vladimir Davydov 2018-12-28 21:21 ` [PATCH 4/5] relay: close xlog cursor in relay thread Vladimir Davydov 2018-12-28 21:21 ` Vladimir Davydov [this message] 2018-12-29 11:40 ` [PATCH 0/5] Fix a couple of replication breakdown issues Vladimir Davydov
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=398940b925b4b9c1ae0cc67452a2d0684cbb754f.1546030880.git.vdavydov.dev@gmail.com \ --to=vdavydov.dev@gmail.com \ --cc=tarantool-patches@freelists.org \ --subject='Re: [PATCH 5/5] xlog: assure xlog is opened and closed in the same thread' \ /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