Tarantool development patches archive
 help / color / mirror / Atom feed
* [Tarantool-patches] raft: make sure the voking mask is wide enough
@ 2020-10-28 18:13 Cyrill Gorcunov
  2020-10-28 18:56 ` [Tarantool-patches] [PATCH v2] raft: make sure the voting " Cyrill Gorcunov
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Cyrill Gorcunov @ 2020-10-28 18:13 UTC (permalink / raw)
  To: tml; +Cc: Vladislav Shpilevoy

The vote_mask is declared as uint32_t which is highly coupled
with VCLOCK_MAX, lets add a compile time test to be sure.

Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
---
I didn't make any branch here since it is trivial, fetch
it from the mbox please if decide to apply.

 src/box/raft.c |    6 ++++++
 1 file changed, 6 insertions(+)

Index: tarantool.git/src/box/raft.c
===================================================================
--- tarantool.git.orig/src/box/raft.c
+++ tarantool.git/src/box/raft.c
@@ -1061,4 +1061,10 @@ raft_init(void)
 {
 	ev_timer_init(&raft.timer, raft_sm_schedule_new_election_cb, 0, 0);
 	rlist_create(&raft.on_update);
+
+	/*
+	 * Make sure there is enough bits to track all replicas.
+	 */
+	static_assert(sizeof(raft.vote_mask) * 8 >= VCLOCK_MAX,
+		      "RAFT: vote_mask is too short");
 }

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2020-11-02 22:28 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-10-28 18:13 [Tarantool-patches] raft: make sure the voking mask is wide enough Cyrill Gorcunov
2020-10-28 18:56 ` [Tarantool-patches] [PATCH v2] raft: make sure the voting " Cyrill Gorcunov
2020-10-30  7:33   ` Serge Petrenko
2020-10-30  8:30     ` [Tarantool-patches] [PATCH v3] raft: make sure the voking " Cyrill Gorcunov
2020-10-30  8:39       ` Serge Petrenko
2020-11-02 22:04 ` [Tarantool-patches] " Vladislav Shpilevoy
2020-11-02 22:17   ` Cyrill Gorcunov
2020-11-02 22:28 ` Vladislav Shpilevoy

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox