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 4E9DE6F867; Tue, 1 Feb 2022 00:56:01 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org 4E9DE6F867 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tarantool.org; s=dev; t=1643666161; bh=1Lo2tiA4TWxnXePG/f6yxD4Xxmp0mb49rvZ+hub4npk=; h=To:Date:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:Cc:From; b=eQ9R09DugUIYV3Lsgfx1OkSKBOth5QiYvE9YyREq+Etc3EFoylX8BS3/A+zhzoQk3 pmq6srzDKB+cqF1q/wRF29jiaGr6t995eBWJjeCc7aWJA/W4dvdqRpoKND8cZFqhqc VCWTu9fupQPfvnwSDfcZW9Fi2exjzawcNx1ua4B8= Received: from mail-lf1-f45.google.com (mail-lf1-f45.google.com [209.85.167.45]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id D6B8D6F867 for ; Tue, 1 Feb 2022 00:55:59 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 dev.tarantool.org D6B8D6F867 Received: by mail-lf1-f45.google.com with SMTP id u6so29718287lfm.10 for ; Mon, 31 Jan 2022 13:55:59 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=EtGuw1K+OvL6EA2rTRBenf0bOR7WlE2+EDu+oK4VNwg=; b=67aCXAdnH8brBzqDIen1Y1KPNBNpnAVrbSt5He3pBBb9+g9xnTGgvVDcsvVSMTo0YR 2nLXWvrHjtMTGtS46+viIrAgWD+S6FHYiwhw1h3XkJyV4VG8X5rcG/SxfWkLvPwAgGOw X35qU51x+UXpC97XO+PhBTQda/CnihPMQA33wA9OpnFHdQbs91kvEOEckPOAPRtXuE7m w3679baxKNmQVcO0sPB1TnoNUefsqKKlS2KAYSRmGFIR2lAazRKvhVaxoST+3p5nCTCX R7hy5bz1Hyp0J8e282zynmXjOrC4RGRlbBQ41Vt7a9IfFil2slxcYQRE41n2xiACFvhK wIaw== X-Gm-Message-State: AOAM533HEeUQaasm36b9jOxwPs+IPPu9eudQxhZtJkMfSJaf6cb66flB oOWu4cNVF89qz24YkldxWO1hJQDWKeg= X-Google-Smtp-Source: ABdhPJzV3/YEXpcIyHYF8U8KAorZ18DIQyF+wZStxtYn8+RnkamYETkPeCYnn02vD8b/6mX8PuMjIw== X-Received: by 2002:a05:6512:3da0:: with SMTP id k32mr7851973lfv.479.1643666158640; Mon, 31 Jan 2022 13:55:58 -0800 (PST) Received: from grain.localdomain ([5.18.251.97]) by smtp.gmail.com with ESMTPSA id z11sm3790534lfu.106.2022.01.31.13.55.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 31 Jan 2022 13:55:57 -0800 (PST) Received: by grain.localdomain (Postfix, from userid 1000) id 21ED75A0020; Tue, 1 Feb 2022 00:55:57 +0300 (MSK) To: tml Date: Tue, 1 Feb 2022 00:55:51 +0300 Message-Id: <20220131215554.1367429-1-gorcunov@gmail.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [Tarantool-patches] [RFC v29 0/3] qsync: implement packet filtering (part 1) 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: Cyrill Gorcunov via Tarantool-patches Reply-To: Cyrill Gorcunov Cc: Vladislav Shpilevoy Errors-To: tarantool-patches-bounces@dev.tarantool.org Sender: "Tarantool-patches" Guys, here is an updated version, where test is converted into luatest form and box_issue_promote/issue_demote are fenced out with a lock. Take a look please. It is still RFC since I didn't managed yet to enhance the test for promote/demote requests as Serge suggested. Still I would like to make sure that except the test there is nothing i forget to address from previsous comments. v22 (by SergeP): - use limbo emptiness test _after_ owner_id test - drop redundant assert in limbo commit/rollback since we're unlocking a latch anyway where own assertion present - in test: drop excessive wait_cond and setup wal delay earlier v23 (by SergeP): - fix problem with owner test in case of recovery journal - update test v27: - simplify the code and cover the case targeting journal write plus terms access race only - i've spent almost a few months trying to use fine grained locking scheme for limbo but it end up in very complex code so eventually I dropped this idea (here why we've v27 after v23) v29: - rework test into luaform - drop fine-grained locks idea since it requires too much code churn, instead lets fence out a big code parts branch gorcunov/gh-6036-rollback-confirm-29-notest issue https://github.com/tarantool/tarantool/issues/6036 previous series https://lists.tarantool.org/tarantool-patches/20211230202347.353494-1-gorcunov@gmail.com/#r Cyrill Gorcunov (3): latch: add latch_is_locked helper qsync: order access to the limbo terms test: add gh-6036-qsync-order test src/box/applier.cc | 6 +- src/box/box.cc | 8 +- src/box/lua/info.c | 4 +- src/box/txn_limbo.c | 18 ++- src/box/txn_limbo.h | 52 ++++++- src/lib/core/latch.h | 11 ++ .../gh_6036_qsync_order_test.lua | 137 ++++++++++++++++++ test/replication-luatest/suite.ini | 1 + 8 files changed, 226 insertions(+), 11 deletions(-) create mode 100644 test/replication-luatest/gh_6036_qsync_order_test.lua base-commit: b72a5c6a1b66d983ca58ac73ecc147e5ab8dd5b3 -- 2.34.1