From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from localhost (localhost [127.0.0.1]) by turing.freelists.org (Avenir Technologies Mail Multiplex) with ESMTP id 8A8782EFC7 for ; Wed, 22 May 2019 15:52:30 -0400 (EDT) Received: from turing.freelists.org ([127.0.0.1]) by localhost (turing.freelists.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id J9Bi7vV0LW_O for ; Wed, 22 May 2019 15:52:30 -0400 (EDT) Received: from smtp33.i.mail.ru (smtp33.i.mail.ru [94.100.177.93]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by turing.freelists.org (Avenir Technologies Mail Multiplex) with ESMTPS id ED63B2F291 for ; Wed, 22 May 2019 15:52:29 -0400 (EDT) From: Vladislav Shpilevoy Subject: [tarantool-patches] [PATCH 3/5] swim: fix flaky parts in swim/swim.test.lua Date: Wed, 22 May 2019 22:52:19 +0300 Message-Id: <5001ecd8d4d0ae328db47052173da06d9f0a3a82.1558554655.git.v.shpilevoy@tarantool.org> In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: tarantool-patches-bounce@freelists.org Errors-to: tarantool-patches-bounce@freelists.org Reply-To: tarantool-patches@freelists.org List-Help: List-Unsubscribe: List-software: Ecartis version 1.0.0 List-Id: tarantool-patches List-Subscribe: List-Owner: List-post: List-Archive: To: tarantool-patches@freelists.org Cc: kostja@tarantool.org They are caused by * too slow network, when SWIM tests are run under high load; * UDP packets late arrival or drop. Follow up #3234 --- test/swim/swim.result | 29 ++++++++--------------------- test/swim/swim.test.lua | 18 ++++++++---------- 2 files changed, 16 insertions(+), 31 deletions(-) diff --git a/test/swim/swim.result b/test/swim/swim.result index dffacd999..1b5ae2b0f 100644 --- a/test/swim/swim.result +++ b/test/swim/swim.result @@ -236,17 +236,9 @@ s1:broadcast(listen_port) --- - true ... -while s2:size() ~= 2 do fiber.sleep(0.01) end +while s2:size() ~= 2 or s1:size() ~= 2 do fiber.sleep(0.01) s1:broadcast(listen_port) end --- ... -s1:size() ---- -- 2 -... -s2:size() ---- -- 2 -... s2:delete() --- ... @@ -263,11 +255,10 @@ s1:remove_member('1234') --- - error: 'builtin/swim.lua:: swim:remove_member: invalid UUID' ... -s1:remove_member(uuid(2)) +s1:remove_member(uuid(2)) size = s1:size() --- -- true ... -s1:size() +size --- - 1 ... @@ -293,9 +284,8 @@ s1:add_member({uuid = uuid(2)}) - null - 'swim.add_member: URI and UUID are mandatory' ... -s1:add_member({uri = listen_uri, uuid = uuid(2)}) +s1:remove_member(uuid(2)) s1:add_member({uri = listen_uri, uuid = uuid(2)}) --- -- true ... s1:add_member({uri = listen_uri, uuid = uuid(2)}) --- @@ -306,15 +296,14 @@ s1:size() --- - 2 ... -s1:cfg({uuid = uuid(3)}) +s1:cfg({uuid = uuid(3)}) old_self = s1:member_by_uuid(uuid(1)) --- -- true ... s1:self():uuid() --- - 00000000-0000-1000-8000-000000000003 ... -s1:member_by_uuid(uuid(1)) +old_self --- - uri: 127.0.0.1: status: left @@ -848,13 +837,11 @@ s2 = swim.new({uuid = uuid(2), uri = uri(), heartbeat_rate = 0.01}) s1_self = s1:self() --- ... -s1:add_member({uuid = s2:self():uuid(), uri = s2:self():uri()}) +_ = s1:add_member({uuid = s2:self():uuid(), uri = s2:self():uri()}) --- -- true ... -s2:add_member({uuid = s1_self:uuid(), uri = s1_self:uri()}) +_ = s2:add_member({uuid = s1_self:uuid(), uri = s1_self:uri()}) --- -- true ... s1:size() --- diff --git a/test/swim/swim.test.lua b/test/swim/swim.test.lua index 081d89b3a..b344c69be 100644 --- a/test/swim/swim.test.lua +++ b/test/swim/swim.test.lua @@ -82,30 +82,28 @@ s1:broadcast('127.0.0.1:3333') s1:broadcast() s1:broadcast(listen_port) -while s2:size() ~= 2 do fiber.sleep(0.01) end -s1:size() -s2:size() +while s2:size() ~= 2 or s1:size() ~= 2 do fiber.sleep(0.01) s1:broadcast(listen_port) end s2:delete() s1.remove_member() s1:remove_member(100) s1:remove_member('1234') -s1:remove_member(uuid(2)) -s1:size() +s1:remove_member(uuid(2)) size = s1:size() +size s1.add_member() s1:add_member(100) s1:add_member({uri = true}) s1:add_member({uri = listen_uri}) s1:add_member({uuid = uuid(2)}) -s1:add_member({uri = listen_uri, uuid = uuid(2)}) +s1:remove_member(uuid(2)) s1:add_member({uri = listen_uri, uuid = uuid(2)}) s1:add_member({uri = listen_uri, uuid = uuid(2)}) s1:size() -s1:cfg({uuid = uuid(3)}) +s1:cfg({uuid = uuid(3)}) old_self = s1:member_by_uuid(uuid(1)) s1:self():uuid() -s1:member_by_uuid(uuid(1)) +old_self -- Can't remove self. s1:remove_member(uuid(3)) -- Not existing. @@ -274,8 +272,8 @@ s:delete() s1 = swim.new({uuid = uuid(1), uri = uri(listen_port), heartbeat_rate = 0.01}) s2 = swim.new({uuid = uuid(2), uri = uri(), heartbeat_rate = 0.01}) s1_self = s1:self() -s1:add_member({uuid = s2:self():uuid(), uri = s2:self():uri()}) -s2:add_member({uuid = s1_self:uuid(), uri = s1_self:uri()}) +_ = s1:add_member({uuid = s2:self():uuid(), uri = s2:self():uri()}) +_ = s2:add_member({uuid = s1_self:uuid(), uri = s1_self:uri()}) s1:size() s2:size() s1_view = s2:member_by_uuid(s1_self:uuid()) -- 2.20.1 (Apple Git-117)