[Tarantool-patches] [PATCH 0/8] wait for lsn and confirm

Vladislav Shpilevoy v.shpilevoy at tarantool.org
Tue Jun 23 00:51:34 MSK 2020


I've got an assertion fail on this test:

Instance 1:

box.cfg{
    listen = 3313,
    replication = {'localhost:3313', 'localhost:3314'},
    replication_timeout = 20,
    replication_synchro_quorum = 2,
    replication_synchro_timeout = 100,
}
box.schema.user.grant('guest', 'super')
s = box.schema.create_space('test', {is_sync = true})
pk = s:create_index('pk')
s:replace{1}


Instance 2:

box.cfg{
    listen = 3314,
    replication = {'localhost:3313', 'localhost:3314'},
    replication_timeout = 20,
    replication_synchro_quorum = 2,
    replication_synchro_timeout = 100,
}
box.schema.user.grant('guest', 'super')

The first instance crashes like this:

(lldb) bt
* thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGABRT
  * frame #0: 0x00007fff784192c2 libsystem_kernel.dylib`__pthread_kill + 10
    frame #1: 0x00007fff784d4bf1 libsystem_pthread.dylib`pthread_kill + 284
    frame #2: 0x00007fff783836a6 libsystem_c.dylib`abort + 127
    frame #3: 0x00007fff7834c20d libsystem_c.dylib`__assert_rtn + 324
    frame #4: 0x0000000100469242 tarantool`vclock_follow(vclock=0x00000001005f8010, replica_id=1, lsn=0) at vclock.c:46:2
    frame #5: 0x00000001000fac50 tarantool`txn_limbo_ack(limbo=0x00000001005f7ff8, replica_id=1, lsn=0) at txn_limbo.c:287:2
    frame #6: 0x000000010012c2ee tarantool`tx_status_update(msg=0x000000010e0022f8) at relay.cc:411:3
    frame #7: 0x000000010024da48 tarantool`cmsg_deliver(msg=0x000000010e0022f8) at cbus.c:375:2
    frame #8: 0x000000010024fa39 tarantool`fiber_pool_f(ap=0x00000001040015e8) at fiber_pool.c:64:3
    frame #9: 0x000000010000672a tarantool`fiber_cxx_invoke(f=(tarantool`fiber_pool_f at fiber_pool.c:38), ap=0x00000001040015e8)(__va_list_tag*), __va_list_tag*) at fiber.h:782:10
    frame #10: 0x0000000100244acb tarantool`fiber_loop(data=0x0000000000000000) at fiber.c:869:18
    frame #11: 0x00000001004c2e77 tarantool`coro_init at coro.c:110:3
(lldb) f 5
frame #5: 0x00000001000fac50 tarantool`txn_limbo_ack(limbo=0x00000001005f7ff8, replica_id=1, lsn=0) at txn_limbo.c:287:2
   284 			return;
   285 		assert(limbo->instance_id != REPLICA_ID_NIL);
   286 		int64_t prev_lsn = vclock_get(&limbo->vclock, replica_id);
-> 287 		vclock_follow(&limbo->vclock, replica_id, lsn);
   288 		struct txn_limbo_entry *e;
   289 		struct txn_limbo_entry *last_quorum = NULL;
   290 		rlist_foreach_entry(e, &limbo->queue, in_queue) {

Second instance has replica_id 1.


More information about the Tarantool-patches mailing list