From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpng2.m.smailru.net (smtpng2.m.smailru.net [94.100.179.3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id D37BD42EF5C for ; Tue, 23 Jun 2020 00:51:36 +0300 (MSK) References: From: Vladislav Shpilevoy Message-ID: <2ab8dc76-ae34-0074-40f9-a044f6230562@tarantool.org> Date: Mon, 22 Jun 2020 23:51:34 +0200 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Subject: Re: [Tarantool-patches] [PATCH 0/8] wait for lsn and confirm List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Serge Petrenko , sergos@tarantool.org, gorcunov@gmail.com Cc: tarantool-patches@dev.tarantool.org 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.