[Tarantool-patches] [PATCH 09/10] box/journal: journal_entry_new -- drop setting up callbacks

Cyrill Gorcunov gorcunov at gmail.com
Sat Mar 7 00:57:55 MSK 2020


On Sat, Mar 07, 2020 at 12:51:03AM +0300, Konstantin Osipov wrote:
> * Cyrill Gorcunov <gorcunov at gmail.com> [20/03/07 00:44]:
> > But vinyl test case fails
> > 
> > 2020-03-07 00:35:51.116 [6494] main/136/applier/unix/:/home/cyrill/sda1 I> subscribed
> > 2020-03-07 00:35:51.116 [6494] main/136/applier/unix/:/home/cyrill/sda1 I> remote vclock {1: 782} local vclock {1: 382}
> > tarantool: /home/cyrill/sda1/tarantool/tarantool.git/src/box/vy_tx.c:803: void vy_tx_commit(struct vy_tx *, int64_t): Assertion `xm->lsn <= lsn' failed.
> > [001] replication/gc.test.lua                         vinyl           
> 
> This has to do most likely with out-of-order invocation of the
> wakeup callbacks.
> 
> Are these sync callbacks or async callbacks?

To be honest -- I don't know at the moment. This is replication test
if I understand correctly and I presume these are async calls, but
not sure yet. What is interesting is that vinyl internally use
journal entries and calls cbus directly to write the data (again,
if I understand correctly 'cause I know nothing about vinyl internals)
and this might be the reason.

> When a batch of transactions are submitted to wal, they got to be
> scheduled to commit in the order of their lsn.
> 
> the order gets broken here for some reason. Please find out why.

Yes. Will continue the next week. And thanks a huge for all your
comments. I'll try to address them in next series once I finish
hunting this test issue.

You know this series of patches is a bit ugly but once we have
a working set of patches we will beautify them the way we like.


More information about the Tarantool-patches mailing list