From patchwork Wed Feb 21 07:42:14 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Daniel Ding X-Patchwork-Id: 1901872 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20230601 header.b=PmN+BV+1; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=openvswitch.org (client-ip=2605:bc80:3010::138; helo=smtp1.osuosl.org; envelope-from=ovs-dev-bounces@openvswitch.org; receiver=patchwork.ozlabs.org) Received: from smtp1.osuosl.org (smtp1.osuosl.org [IPv6:2605:bc80:3010::138]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4TfpCR18Ppz23d2 for ; Wed, 21 Feb 2024 18:42:41 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by smtp1.osuosl.org (Postfix) with ESMTP id 589AD821B8; Wed, 21 Feb 2024 07:42:36 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp1.osuosl.org ([127.0.0.1]) by localhost (smtp1.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id f4MIyb8ruX4X; Wed, 21 Feb 2024 07:42:35 +0000 (UTC) X-Comment: SPF check N/A for local connections - client-ip=140.211.9.56; helo=lists.linuxfoundation.org; envelope-from=ovs-dev-bounces@openvswitch.org; receiver= DKIM-Filter: OpenDKIM Filter v2.11.0 smtp1.osuosl.org 42ECF82137 Authentication-Results: smtp1.osuosl.org; dkim=fail reason="signature verification failed" (2048-bit key, unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20230601 header.b=PmN+BV+1 Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [140.211.9.56]) by smtp1.osuosl.org (Postfix) with ESMTPS id 42ECF82137; Wed, 21 Feb 2024 07:42:35 +0000 (UTC) Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id 23E4FC0072; Wed, 21 Feb 2024 07:42:35 +0000 (UTC) X-Original-To: dev@openvswitch.org Delivered-To: ovs-dev@lists.linuxfoundation.org Received: from smtp2.osuosl.org (smtp2.osuosl.org [IPv6:2605:bc80:3010::133]) by lists.linuxfoundation.org (Postfix) with ESMTP id 1D0CDC0037 for ; Wed, 21 Feb 2024 07:42:34 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp2.osuosl.org (Postfix) with ESMTP id EC1BC40428 for ; Wed, 21 Feb 2024 07:42:33 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp2.osuosl.org ([127.0.0.1]) by localhost (smtp2.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id N2VIwLhiTKFY for ; Wed, 21 Feb 2024 07:42:32 +0000 (UTC) Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=2607:f8b0:4864:20::22c; helo=mail-oi1-x22c.google.com; envelope-from=danieldin186@gmail.com; receiver= DMARC-Filter: OpenDMARC Filter v1.4.2 smtp2.osuosl.org 6399840136 Authentication-Results: smtp2.osuosl.org; dmarc=pass (p=none dis=none) header.from=gmail.com DKIM-Filter: OpenDKIM Filter v2.11.0 smtp2.osuosl.org 6399840136 Authentication-Results: smtp2.osuosl.org; dkim=pass (2048-bit key, unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20230601 header.b=PmN+BV+1 Received: from mail-oi1-x22c.google.com (mail-oi1-x22c.google.com [IPv6:2607:f8b0:4864:20::22c]) by smtp2.osuosl.org (Postfix) with ESMTPS id 6399840136 for ; Wed, 21 Feb 2024 07:42:32 +0000 (UTC) Received: by mail-oi1-x22c.google.com with SMTP id 5614622812f47-3bd72353d9fso4718334b6e.3 for ; Tue, 20 Feb 2024 23:42:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1708501351; x=1709106151; darn=openvswitch.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=5vtLDemLabmzYR8BZv+4OJnWRSVMNd5sE4Gr3aG/KV0=; b=PmN+BV+1Bw92XtworEXBfkthFhKOImvIaHMOJIAuqhUsoVAxFnCklrvrA65BMks80b tBiAFR0pv5HSRBnwOniQM0dCOdKsGmFaOMwZuOrhl4dKtelrufQdmn+hWdbqnIm8b8QE d1dQCgO2GwkEur3Rv/gTnyM9V33lyDXMv9QqwGuR+orQvqccBeztwhH3pk8Lb2c1WDPr AsgFcZ9zULIFbMtFwAg49YQfxO3K01BVlIFjjTwpBbOjGmMrB+6TIzpSVaayosWwazHw Exp1oV39OaVzMFf59Ead+5sJM/aHXpZ78wYoSxiocBCe/tJnnzt/fgta7dlI0SnA5nc2 0wLg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1708501351; x=1709106151; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=5vtLDemLabmzYR8BZv+4OJnWRSVMNd5sE4Gr3aG/KV0=; b=p7v2mTwG5tr8jqZA9v0dckOR7QDNj5sUZMan8IY4F9a5DiYmQfXs5QFcaCRm4s6NEJ TG37M7PTLKybgqfdlrDOPTTXQLsGc5TYS5QvS/qyFtsZYTeQgWoC+Kb8ka6xLVh+lDHW R4xQWq5Y45AJVQ9w8SkxpGOjSiAHfC4+ZTTbv+oChGLCqiQsw06m+gCjT0EnaYHazng1 DhZwyqk5XzLhIHwNkgi7sw75KGSU6W6QL5Evi7JeZ0JjlbK3CRTC2C3TTDsN1hy/Ew3F erdpeu8JPMPu6Y0bX1woGelnQMMdEZnmEHY6IbCtkS3p//ftKBqPEdODgyHIsj4H2Afx Zidw== X-Gm-Message-State: AOJu0Yxc/y3+bZRqaaFMrMJVEX2F/TyU5VMyrU8jRLdQIytA8pcPVLgW CAGKtXs5iO7osuoWAVwMphP0hgx4iQUHS8T21L1Io/odHpPxIvv6FapwgwY2 X-Google-Smtp-Source: AGHT+IGJyDl9/TBwha19SY1BNpQrxeA0LFX2fue9h2GH/sw6CYCMqTMwrMXRclsE71jL91JN1Uii8g== X-Received: by 2002:a05:6808:1312:b0:3c1:3b6b:5b72 with SMTP id y18-20020a056808131200b003c13b6b5b72mr19898450oiv.55.1708501350679; Tue, 20 Feb 2024 23:42:30 -0800 (PST) Received: from localhost.localdomain ([45.159.50.93]) by smtp.gmail.com with ESMTPSA id kk8-20020a170903070800b001d6f8b31ddcsm7464526plb.3.2024.02.20.23.42.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 20 Feb 2024 23:42:30 -0800 (PST) From: Daniel Ding X-Google-Original-From: Daniel Ding To: dev@openvswitch.org Date: Wed, 21 Feb 2024 15:42:14 +0800 Message-ID: <20240221074214.96824-1-zhihui.ding@easystack.cn> X-Mailer: git-send-email 2.43.0 MIME-Version: 1.0 Cc: Daniel Ding Subject: [ovs-dev] [PATCH v1] ovs-tcpdump: Cleanup mirror failed with twice fatal signals X-BeenThere: ovs-dev@openvswitch.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: ovs-dev-bounces@openvswitch.org Sender: "dev" After running ovs-tcpdump and inputs multiple CTRL+C, the program will raise the following exception. Error in atexit._run_exitfuncs: Traceback (most recent call last): File "/usr/bin/ovs-tcpdump", line 421, in cleanup_mirror ovsdb = OVSDB(db_sock) File "/usr/bin/ovs-tcpdump", line 168, in __init__ OVSDB.wait_for_db_change(self._idl_conn) # Initial Sync with DB File "/usr/bin/ovs-tcpdump", line 155, in wait_for_db_change while idl.change_seqno == seq and not idl.run(): Signed-off-by: Daniel Ding Reviewed-by: Aaron Conole --- utilities/ovs-tcpdump.in | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/utilities/ovs-tcpdump.in b/utilities/ovs-tcpdump.in index 4cbd9a5d3..eec2262d6 100755 --- a/utilities/ovs-tcpdump.in +++ b/utilities/ovs-tcpdump.in @@ -17,6 +17,7 @@ import os import pwd from random import randint +import signal import subprocess import sys import time @@ -417,8 +418,22 @@ def py_which(executable): for path in os.environ["PATH"].split(os.pathsep)) +def ignore_fatal_signals(): + if sys.platform == "win32": + signals = [signal.SIGTERM, signal.SIGINT] + else: + signals = [signal.SIGTERM, signal.SIGINT, signal.SIGHUP, + signal.SIGALRM] + + for signr in signals: + signal.signal(signr, signal.SIG_IGN) + + def teardown(db_sock, interface, mirror_interface, tap_created): def cleanup_mirror(): + # Ignore fatal signals, avoid it to break OVSDB operations. + # So that cleanup mirror and ports be finished. + ignore_fatal_signals() try: ovsdb = OVSDB(db_sock) ovsdb.destroy_mirror(interface, ovsdb.port_bridge(interface))