From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: passt.top; dmarc=none (p=none dis=none) header.from=gibson.dropbear.id.au Authentication-Results: passt.top; dkim=pass (2048-bit key; secure) header.d=gibson.dropbear.id.au header.i=@gibson.dropbear.id.au header.a=rsa-sha256 header.s=202502 header.b=AnBa3uK6; dkim-atps=neutral Received: from mail.ozlabs.org (mail.ozlabs.org [IPv6:2404:9400:2221:ea00::3]) by passt.top (Postfix) with ESMTPS id 2C1B15A0272 for ; Wed, 26 Feb 2025 07:04:32 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gibson.dropbear.id.au; s=202502; t=1740549864; bh=xvvPr0SNlvY/xSN6s4gZmFVdeV62ej59T1uo3sG0bYc=; h=From:To:Cc:Subject:Date:From; b=AnBa3uK6zUoLJhzHhwB8WVfN+WkSf8qsV7NGpplXgxvpk1o2JaACi5CJlZCfb7c/+ Yz64AdX4lDp7EpVg4KPsLAbYdXqqx6vOw4EPjDWLMsx6Bua/h0Qwm5P8/Sh0Fg8pHI J8jLK2bSJKUnxRKQcAVqS6QC+/LwnbcYdS0Xmz9MK5nTkvZlpxG2myLxRyXIF7BFCF x4u6QSyE4ZvpnHNeJMpTnWzJVKnPLrFr+6NUak5GcsculRUPoELcsRWKiUbYGGRTrP NUOBiFsIrElmjnhx4EYTI/g6P8snRPgWj060ifzJSUvsHEhrU9c+oxu8VcAxG0/LPn qKi3yLTPai8PQ== Received: by gandalf.ozlabs.org (Postfix, from userid 1007) id 4Z2kSm3kQsz4x1V; Wed, 26 Feb 2025 17:04:24 +1100 (AEDT) From: David Gibson To: passt-dev@passt.top, Stefano Brivio Subject: [PATCH v3 0/3] More graceful handling of migration without passt-repair Date: Wed, 26 Feb 2025 17:04:19 +1100 Message-ID: <20250226060422.48295-1-david@gibson.dropbear.id.au> X-Mailer: git-send-email 2.48.1 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Message-ID-Hash: PHSACETNCRBKBOBHET33ZTGT7AJZVMN5 X-Message-ID-Hash: PHSACETNCRBKBOBHET33ZTGT7AJZVMN5 X-MailFrom: dgibson@gandalf.ozlabs.org X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: David Gibson X-Mailman-Version: 3.3.8 Precedence: list List-Id: Development discussion and patches for passt Archived-At: Archived-At: List-Archive: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: >From Red Hat internal testing we've had some reports that if attempting to migrate without passt-repair, the failure mode is uglier than we'd like. The migration fails, which is somewhat expected, but we don't correctly roll things back on the source, so it breaks network there as well. Handle this more gracefully allowing the migration to proceed in this case, but allow TCP connections to break I've test patches 1..2/3 reasonably: * I get a clean migration if there are now active flows * Migration completes, although connections are broken if passt-repair isn't connected * Basic test suite (minus perf) Patch 3 I've run the basic test suite on, but haven't tested the specific functionality of. Alas, I've spent most of today battling with RHEL, virt-install, unshare and various other things trying to create a test environment simulating two hosts with (possibly) different addresses. Despite the example given by Stefano in reply to the previous version, I haven't really succeeded yet. There are more fragile cases that I'm looking to fix, particularly the die()s in flow_migrate_source_rollback() and elsewhere, however I ran into various complications that I didn't manage to sort out today. I'll continue looking at those tomorrow. David Gibson (3): migrate, flow: Trivially succeed if migrating with no flows migrate, flow: Don't attempt to migrate TCP flows without passt-repair migrate, tcp: Don't attempt to carry on migration after flow_alloc_cancel() flow.c | 17 +++++++++++++++-- tcp.c | 5 ++++- 2 files changed, 19 insertions(+), 3 deletions(-) -- 2.48.1