From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from [87.239.111.99] (localhost [127.0.0.1]) by dev.tarantool.org (Postfix) with ESMTP id 878566ECEB; Sat, 15 Jan 2022 03:48:59 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org 878566ECEB DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tarantool.org; s=dev; t=1642207739; bh=4RH2EYhUH1x+fKDh7ka7OeNTiV5fZU3e98CsEXGZPeQ=; h=To:Date:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=C9oUEqrh7gsXW7cD1RxLWaAq4C4Vh/F4g4MSthl8ba2IRwwzvJv+NcsiHkhsphrpX G0qz/PmH6gmkA1CnLrhwF3i2jBFDSFDltWYGuNs2oygFaZqM2arid2YOJbA3EO6apC FD3a+ZmjGPseN3TG4GuDScAMIJSlkE2JbwXzZEOo= Received: from smtpng1.i.mail.ru (smtpng1.i.mail.ru [94.100.181.251]) (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 BD3146ECE3 for ; Sat, 15 Jan 2022 03:48:57 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org BD3146ECE3 Received: by smtpng1.m.smailru.net with esmtpa (envelope-from ) id 1n8XFZ-0002zu-1T; Sat, 15 Jan 2022 03:48:57 +0300 To: tarantool-patches@dev.tarantool.org, sergepetrenko@tarantool.org Date: Sat, 15 Jan 2022 01:48:52 +0100 Message-Id: X-Mailer: git-send-email 2.24.3 (Apple Git-128) MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-7564579A: EEAE043A70213CC8 X-77F55803: 4F1203BC0FB41BD9CD668969C51240A483C19EF8315A6FF9F5BDF9E6004E426E182A05F538085040B8431949F018EC75D4868B62B32B50741065F703AF35A5F81543A3CFC8BE3372 X-7FA49CB5: FF5795518A3D127A4AD6D5ED66289B5278DA827A17800CE79961E86438F5BDAEEA1F7E6F0F101C67BD4B6F7A4D31EC0BCC500DACC3FED6E28638F802B75D45FF8AA50765F7900637B3D52627AD81B52CEA1F7E6F0F101C6723150C8DA25C47586E58E00D9D99D84E1BDDB23E98D2D38BEBC5CAB6D411FFA6C2860944D6CF4C387ACE609960A3F886CC7F00164DA146DAFE8445B8C89999728AA50765F7900637F6B57BC7E64490618DEB871D839B7333395957E7521B51C2DFABB839C843B9C08941B15DA834481F8AA50765F7900637F6B57BC7E6449061A352F6E88A58FB86F5D81C698A659EA7E827F84554CEF5019E625A9149C048EE9ECD01F8117BC8BEE2021AF6380DFAD18AA50765F790063735872C767BF85DA227C277FBC8AE2E8B953A8A48A05D51F175ECD9A6C639B01B4E70A05D1297E1BBCB5012B2E24CD356 X-C1DE0DAB: C20DE7B7AB408E4181F030C43753B8186998911F362727C414F749A5E30D975CBF0E6906D4BA60DF1A5419D5DC71A3A7E0EFBDB38F2D01999C2B6934AE262D3EE7EAB7254005DCEDCC8CC096E6E695E99510FB958DCE06DB6ED91DBE5ABE359A7EE5648E065588D47D06A436E56C8DB493EDB24507CE13387DFF0A840B692CF8 X-C8649E89: 4E36BF7865823D7055A7F0CF078B5EC49A30900B95165D34B9F55CA4D2956E30CE6F30833A9C602B2E74B4954D98EBD19DC994B7506615165F1590D45967EFBD1D7E09C32AA3244C1D8AD12C21D622FF4A6BE74A258B3D60F165894D92D62706729B2BEF169E0186 X-D57D3AED: 3ZO7eAau8CL7WIMRKs4sN3D3tLDjz0dLbV79QFUyzQ2Ujvy7cMT6pYYqY16iZVKkSc3dCLJ7zSJH7+u4VD18S7Vl4ZUrpaVfd2+vE6kuoey4m4VkSEu530nj6fImhcD4MUrOEAnl0W826KZ9Q+tr5ycPtXkTV4k65bRjmOUUP8cvGozZ33TWg5HZplvhhXbhDGzqmQDTd6OAevLeAnq3Ra9uf7zvY2zzsIhlcp/Y7m53TZgf2aB4JOg4gkr2biojbL9S8ysBdXjjKLk2VV63ygx35vMWd0+C X-Mailru-Sender: 689FA8AB762F739339CABD9B3CA9A7D603B9A0D1D2C7C45A01261686E79591003841015FED1DE5223CC9A89AB576DD93FB559BB5D741EB963CF37A108A312F5C27E8A8C3839CE0E25FEEDEB644C299C0ED14614B50AE0675 X-Mras: Ok Subject: [Tarantool-patches] [PATCH 0/4] Split vote X-BeenThere: tarantool-patches@dev.tarantool.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Vladislav Shpilevoy via Tarantool-patches Reply-To: Vladislav Shpilevoy Errors-To: tarantool-patches-bounces@dev.tarantool.org Sender: "Tarantool-patches" Split vote handling in Raft, its usage in storage, and a bug fix found while working on this in the first commit. Branch: http://github.com/tarantool/tarantool/tree/gerold103/gh-5285-raft-split-vote Issue: https://github.com/tarantool/tarantool/issues/5285 Vladislav Shpilevoy (4): raft: fix crash on election_timeout reconfig raft: track all votes, even not own raft: introduce split vote detection election: activate raft split vote handling .../unreleased/election-timeout-cfg-crash.md | 5 + src/box/raft.c | 4 +- src/lib/raft/raft.c | 142 ++++++++- src/lib/raft/raft.h | 30 +- .../election_split_vote_test.lua | 92 ++++++ test/unit/raft.c | 299 +++++++++++++++++- test/unit/raft.result | 64 +++- test/unit/raft_test_utils.c | 12 + test/unit/raft_test_utils.h | 5 + 9 files changed, 622 insertions(+), 31 deletions(-) create mode 100644 changelogs/unreleased/election-timeout-cfg-crash.md create mode 100644 test/replication-luatest/election_split_vote_test.lua -- 2.24.3 (Apple Git-128)