[PATCH] replication: update replica gc state on subscribe
Vladimir Davydov
vdavydov.dev at gmail.com
Wed Mar 13 16:38:39 MSK 2019
On Wed, Mar 13, 2019 at 04:13:45PM +0300, Vladimir Davydov wrote:
> We advance replica->gc state only when an xlog file is fully recovered,
> see recovery_close_log and relay_on_close_log_f. It may turn out that an
> xlog file is fully recovered, but isn't closed properly by relay (i.e.
> recovery_close_log isn't called), because the replica closes connection
> for some reason (e.g. timeout). If this happens, the old xlog file
> won't be removed when the replica reconnects, because we don't advance
> replica->gc state on reconnect, so the useless xlog file won't be
> removed until the next xlog file is relayed. This results in occasional
> replication/gc.test.lua failures. Fix this by updating replica->gc on
> reconnect with the current replica vclock.
>
> Closes #4034
> ---
> https://github.com/tarantool/tarantool/issues/4034
> https://github.com/tarantool/tarantool/commits/dv/gh-4034-replication-update-gc-state-on-subscribe
>
> src/box/relay.cc | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
Alexander Tikhonov confirms that this patch fixes the test failure.
Pushed to 2.1.
More information about the Tarantool-patches
mailing list