get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/2196418/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 2196418,
    "url": "http://patchwork.ozlabs.org/api/patches/2196418/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/openvswitch/patch/20260213201954.1716753-1-i.maximets@ovn.org/",
    "project": {
        "id": 47,
        "url": "http://patchwork.ozlabs.org/api/projects/47/?format=api",
        "name": "Open vSwitch",
        "link_name": "openvswitch",
        "list_id": "ovs-dev.openvswitch.org",
        "list_email": "ovs-dev@openvswitch.org",
        "web_url": "http://openvswitch.org/",
        "scm_url": "git@github.com:openvswitch/ovs.git",
        "webscm_url": "https://github.com/openvswitch/ovs",
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<20260213201954.1716753-1-i.maximets@ovn.org>",
    "list_archive_url": null,
    "date": "2026-02-13T20:19:53",
    "name": "[ovs-dev] utilities: Delete obsolete ovs-parse-backtrace.",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "00285a9f8239169f641ee9488c81c1313cf261ea",
    "submitter": {
        "id": 76798,
        "url": "http://patchwork.ozlabs.org/api/people/76798/?format=api",
        "name": "Ilya Maximets",
        "email": "i.maximets@ovn.org"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/openvswitch/patch/20260213201954.1716753-1-i.maximets@ovn.org/mbox/",
    "series": [
        {
            "id": 492136,
            "url": "http://patchwork.ozlabs.org/api/series/492136/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/openvswitch/list/?series=492136",
            "date": "2026-02-13T20:19:53",
            "name": "[ovs-dev] utilities: Delete obsolete ovs-parse-backtrace.",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/492136/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2196418/comments/",
    "check": "success",
    "checks": "http://patchwork.ozlabs.org/api/patches/2196418/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<ovs-dev-bounces@openvswitch.org>",
        "X-Original-To": [
            "incoming@patchwork.ozlabs.org",
            "ovs-dev@openvswitch.org"
        ],
        "Delivered-To": [
            "patchwork-incoming@legolas.ozlabs.org",
            "ovs-dev@lists.linuxfoundation.org"
        ],
        "Authentication-Results": [
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=openvswitch.org\n (client-ip=2605:bc80:3010::136; helo=smtp3.osuosl.org;\n envelope-from=ovs-dev-bounces@openvswitch.org; receiver=patchwork.ozlabs.org)",
            "smtp1.osuosl.org;\n dmarc=none (p=none dis=none) header.from=ovn.org"
        ],
        "Received": [
            "from smtp3.osuosl.org (smtp3.osuosl.org [IPv6:2605:bc80:3010::136])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fCNnk0vcSz1xvS\n\tfor <incoming@patchwork.ozlabs.org>; Sat, 14 Feb 2026 07:20:10 +1100 (AEDT)",
            "from localhost (localhost [127.0.0.1])\n\tby smtp3.osuosl.org (Postfix) with ESMTP id 7723460EB7;\n\tFri, 13 Feb 2026 20:20:08 +0000 (UTC)",
            "from smtp3.osuosl.org ([127.0.0.1])\n by localhost (smtp3.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP\n id 0XFb2GcR-oIX; Fri, 13 Feb 2026 20:20:06 +0000 (UTC)",
            "from lists.linuxfoundation.org (lf-lists.osuosl.org\n [IPv6:2605:bc80:3010:104::8cd3:938])\n\tby smtp3.osuosl.org (Postfix) with ESMTPS id 3D2A560822;\n\tFri, 13 Feb 2026 20:20:06 +0000 (UTC)",
            "from lf-lists.osuosl.org (localhost [127.0.0.1])\n\tby lists.linuxfoundation.org (Postfix) with ESMTP id 13F42C0035;\n\tFri, 13 Feb 2026 20:20:06 +0000 (UTC)",
            "from smtp1.osuosl.org (smtp1.osuosl.org [140.211.166.138])\n by lists.linuxfoundation.org (Postfix) with ESMTP id 7BF7DC0033\n for <ovs-dev@openvswitch.org>; Fri, 13 Feb 2026 20:20:04 +0000 (UTC)",
            "from localhost (localhost [127.0.0.1])\n by smtp1.osuosl.org (Postfix) with ESMTP id 5762C82F11\n for <ovs-dev@openvswitch.org>; Fri, 13 Feb 2026 20:20:04 +0000 (UTC)",
            "from smtp1.osuosl.org ([127.0.0.1])\n by localhost (smtp1.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP\n id IJtb4ZRag6HA for <ovs-dev@openvswitch.org>;\n Fri, 13 Feb 2026 20:20:03 +0000 (UTC)",
            "from mail-qk1-f195.google.com (mail-qk1-f195.google.com\n [209.85.222.195])\n by smtp1.osuosl.org (Postfix) with ESMTPS id 211EC839E9\n for <ovs-dev@openvswitch.org>; Fri, 13 Feb 2026 20:20:01 +0000 (UTC)",
            "by mail-qk1-f195.google.com with SMTP id\n af79cd13be357-8cb3fd71badso136408885a.0\n for <ovs-dev@openvswitch.org>; Fri, 13 Feb 2026 12:20:01 -0800 (PST)",
            "from im-t490s.redhat.com (89-24-32-126.nat.epc.tmcz.cz.\n [89.24.32.126]) by smtp.gmail.com with ESMTPSA id\n 6a1803df08f44-8971cd8baa2sm76657536d6.31.2026.02.13.12.19.58\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Fri, 13 Feb 2026 12:19:59 -0800 (PST)"
        ],
        "X-Virus-Scanned": [
            "amavis at osuosl.org",
            "amavis at osuosl.org"
        ],
        "X-Comment": "SPF check N/A for local connections -\n client-ip=2605:bc80:3010:104::8cd3:938; helo=lists.linuxfoundation.org;\n envelope-from=ovs-dev-bounces@openvswitch.org; receiver=<UNKNOWN> ",
        "DKIM-Filter": [
            "OpenDKIM Filter v2.11.0 smtp3.osuosl.org 3D2A560822",
            "OpenDKIM Filter v2.11.0 smtp1.osuosl.org 211EC839E9"
        ],
        "Received-SPF": "Pass (mailfrom) identity=mailfrom; client-ip=209.85.222.195;\n helo=mail-qk1-f195.google.com; envelope-from=i.maximets.ovn@gmail.com;\n receiver=<UNKNOWN>",
        "DMARC-Filter": "OpenDMARC Filter v1.4.2 smtp1.osuosl.org 211EC839E9",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20230601; t=1771014001; x=1771618801;\n h=content-transfer-encoding:mime-version:message-id:date:subject:cc\n :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date\n :message-id:reply-to;\n bh=dbMTVxGmSjZ9FrERF7a47GLEghQmPi5AW89+hOJ2juQ=;\n b=lksQ9nhRa5RgQHUFT9yei08N4sZbQ+xZgN3rb4Yq5lscykiPt00mMgAzKJybPuHnxh\n sQSDRZR8ubaCybpZZWUBeN04sP2p9/TqqwcPQk9CGduMeM/0aA/EpCwyO82h6dZmMEcl\n VYWVO2+IeMsCuC6Tg6hjxsNHERtIfqIJVndBHfNqpkACeZtLuxMQSmJwCCOwPLriy4aj\n QtAhb3UTIpULjjj2JiRthulqeJArTDjGhDPqMvhWGR1+xVVCColkuU2BWbf32L9F7QBW\n SsuMfN13FXw9YwYEjbeoQwKLwP0bZkyEJROnlzYau7AlFk4RKzqu6XyUYYXbOpfP6l0J\n OIWQ==",
        "X-Gm-Message-State": "AOJu0Yy/SqgD3KrOtcCXXAxPtcST4sigY7IXQotrOhP9hFNz49LTa6fv\n Lf2+10F4mxkIv/nv6EwPIkGLM9kwgQG8hzmVFF4Qaby+3Eigu7GVzzr4kYt9OIcF",
        "X-Gm-Gg": "AZuq6aJEh4ItaIXiZgEtgFHYjIvMUbzEAfbhlwpUoWGfMbOrm73FRzOJdnIJNQujFHt\n iz1AgNaE5JONjTkiaw0VySJnO0zsgiFFoXZhWA5zLaap+0gDuUMhqwQck7sD263nqSz30JcafVz\n DvNsifl7KF7PCaJg2+QTHZMN6Xgq0A9KZDLzOWSjxDUjJyWOkoMYlzep7zVCUDh6Vy1RUWQsB3Z\n pDK/C5rovK0MDj9zjbx1tss5ESbbD8NBxWSP+o18xhahwtrlldA8Bkr9xshasZaTw5Q2r78NXr/\n IqDyJl103disfGWUS938RfBzxyo22PX7+ak9Ebzzp+LqShXDT/OxZhNiQlaEr3jYC+Kr0KwY4gI\n mRrWSz6RZw3HAiPqwEIpS2YUeuXHPwNGs7boHDmQOnpF2vKVkwBqo7Rv5qWrG1/paMIrkUTMDlv\n CozNFwpbHloNQyzZg9Ekgk0MsJAjKFg9kgtAWnM27yq1+l5sJ/S7Ze9qfFteMQT58=",
        "X-Received": "by 2002:a05:620a:4593:b0:8c6:e8f6:2c7 with SMTP id\n af79cd13be357-8cb42291987mr364702185a.38.1771014000117;\n Fri, 13 Feb 2026 12:20:00 -0800 (PST)",
        "From": "Ilya Maximets <i.maximets@ovn.org>",
        "To": "ovs-dev@openvswitch.org",
        "Cc": "Ilya Maximets <i.maximets@ovn.org>",
        "Date": "Fri, 13 Feb 2026 21:19:53 +0100",
        "Message-ID": "<20260213201954.1716753-1-i.maximets@ovn.org>",
        "X-Mailer": "git-send-email 2.52.0",
        "MIME-Version": "1.0",
        "Subject": "[ovs-dev] [PATCH] utilities: Delete obsolete ovs-parse-backtrace.",
        "X-BeenThere": "ovs-dev@openvswitch.org",
        "X-Mailman-Version": "2.1.30",
        "Precedence": "list",
        "List-Id": "<ovs-dev.openvswitch.org>",
        "List-Unsubscribe": "<https://mail.openvswitch.org/mailman/options/ovs-dev>,\n <mailto:ovs-dev-request@openvswitch.org?subject=unsubscribe>",
        "List-Archive": "<http://mail.openvswitch.org/pipermail/ovs-dev/>",
        "List-Post": "<mailto:ovs-dev@openvswitch.org>",
        "List-Help": "<mailto:ovs-dev-request@openvswitch.org?subject=help>",
        "List-Subscribe": "<https://mail.openvswitch.org/mailman/listinfo/ovs-dev>,\n <mailto:ovs-dev-request@openvswitch.org?subject=subscribe>",
        "Content-Type": "text/plain; charset=\"us-ascii\"",
        "Content-Transfer-Encoding": "7bit",
        "Errors-To": "ovs-dev-bounces@openvswitch.org",
        "Sender": "\"dev\" <ovs-dev-bounces@openvswitch.org>"
    },
    "content": "The ovs-parse-backtrace script was supposed to be used for parsing the\noutput of 'ovs-appctl backtrace' command.  But that command was\nremoved back in 2013 while making OVS thread-safe.  The script itself\nis also not even compatible with python3 (some decoding of byte objects\nis missing).\n\nWe could've fixed it and adjusted to parse out backtraces from the\nlogs instead, but a simple grep with addr2line can do a very similar\njob, e.g.:\n\n  grep -o '^0x[0-9a-f]*' ./ovs-vswitchd.log \\\n     | xargs addr2line -a -f -s -p -e $(which ovs-vswitchd)\n\nAlso, GDB is generally more useful for this task, but that would be a\ncomplete re-write of the script that no-one have used for 13 years.\nWe can just add a new one if we ever need it.  For now, just remove\nthe broken script and clean up the mentions of it.\n\nFixes: 94f3e5269e93 (\"timeval: Remove backtrace feature.\")\nSigned-off-by: Ilya Maximets <i.maximets@ovn.org>\n---\n Documentation/automake.mk                   |   1 -\n Documentation/conf.py                       |   2 -\n Documentation/ref/index.rst                 |   1 -\n Documentation/ref/ovs-parse-backtrace.8.rst |  34 -------\n debian/openvswitch-common.install           |   2 -\n rhel/openvswitch-fedora.spec.in             |   3 -\n rhel/openvswitch.spec.in                    |   2 -\n utilities/.gitignore                        |   1 -\n utilities/automake.mk                       |   3 -\n utilities/ovs-parse-backtrace.in            | 103 --------------------\n 10 files changed, 152 deletions(-)\n delete mode 100644 Documentation/ref/ovs-parse-backtrace.8.rst\n delete mode 100755 utilities/ovs-parse-backtrace.in",
    "diff": "diff --git a/Documentation/automake.mk b/Documentation/automake.mk\nindex b18dbce5e..ea9459b55 100644\n--- a/Documentation/automake.mk\n+++ b/Documentation/automake.mk\n@@ -164,7 +164,6 @@ RST_MANPAGES = \\\n \tovs-ctl.8.rst \\\n \tovs-flowviz.8.rst \\\n \tovs-l3ping.8.rst \\\n-\tovs-parse-backtrace.8.rst \\\n \tovs-pki.8.rst \\\n \tovs-tcpdump.8.rst \\\n \tovs-tcpundump.1.rst \\\ndiff --git a/Documentation/conf.py b/Documentation/conf.py\nindex 303973fc9..276999b29 100644\n--- a/Documentation/conf.py\n+++ b/Documentation/conf.py\n@@ -134,8 +134,6 @@ _man_pages = [\n      u'utility for visualizing OpenFlow and datapath flows'),\n     ('ovs-l3ping.8',\n      u'check network deployment for L3 tunneling problems'),\n-    ('ovs-parse-backtrace.8',\n-     u'parses ovs-appctl backtrace output'),\n     ('ovs-pki.8',\n      u'OpenFlow public key infrastructure management utility'),\n     ('ovs-sim.1',\ndiff --git a/Documentation/ref/index.rst b/Documentation/ref/index.rst\nindex 7f2fe6177..fbf296647 100644\n--- a/Documentation/ref/index.rst\n+++ b/Documentation/ref/index.rst\n@@ -46,7 +46,6 @@ time:\n    ovs-l3ping.8\n    ovs-pki.8\n    ovs-sim.1\n-   ovs-parse-backtrace.8\n    ovs-tcpdump.8\n    ovs-tcpundump.1\n    ovs-test.8\ndiff --git a/Documentation/ref/ovs-parse-backtrace.8.rst b/Documentation/ref/ovs-parse-backtrace.8.rst\ndeleted file mode 100644\nindex 27270c612..000000000\n--- a/Documentation/ref/ovs-parse-backtrace.8.rst\n+++ /dev/null\n@@ -1,34 +0,0 @@\n-===================\n-ovs-parse-backtrace\n-===================\n-\n-Synopsis\n-========\n-\n-``ovs-appctl backtrace | ovs-parse-backtrace [<binary>]``\n-\n-``ovs-parse-backtrace [<binary>] < <backtrace>``\n-\n-Description\n-===========\n-\n-In some configurations, many Open vSwitch daemons can produce a series of\n-backtraces using the ``ovs-appctl backtrace`` command.  Users can analyze\n-these backtraces to figure out what the given Open vSwitch daemon may be\n-spending most of its time doing.  ``ovs-parse-backtrace`` makes this output\n-easier to interpret.\n-\n-The ``ovs-appctl backtrace`` output must be supplied on standard input.  The\n-binary that produced the output should be supplied as the sole non-option\n-argument.  For best results, the binary should have debug symbols.\n-\n-Options\n-=======\n-\n-* ``--help``\n-\n-  Prints a usage message and exits.\n-\n-* ``--version``\n-\n-  Prints the version and exits.\ndiff --git a/debian/openvswitch-common.install b/debian/openvswitch-common.install\nindex 5fef8de74..43563b07f 100644\n--- a/debian/openvswitch-common.install\n+++ b/debian/openvswitch-common.install\n@@ -3,7 +3,6 @@ usr/bin/ovs-appctl\n usr/bin/ovs-docker\n usr/bin/ovs-flowviz\n usr/bin/ovs-ofctl\n-usr/bin/ovs-parse-backtrace\n usr/bin/ovs-pki\n usr/bin/ovsdb-client\n usr/bin/ovsdb-tool\n@@ -23,7 +22,6 @@ usr/share/man/man8/ovs-appctl.8\n usr/share/man/man8/ovs-bugtool.8\n usr/share/man/man8/ovs-flowviz.8\n usr/share/man/man8/ovs-ofctl.8\n-usr/share/man/man8/ovs-parse-backtrace.8\n usr/share/man/man8/ovs-pki.8\n usr/share/openvswitch/bugtool-plugins\n usr/share/openvswitch/scripts/ovs-bugtool-*\ndiff --git a/rhel/openvswitch-fedora.spec.in b/rhel/openvswitch-fedora.spec.in\nindex 87e7025b3..320b1ad86 100644\n--- a/rhel/openvswitch-fedora.spec.in\n+++ b/rhel/openvswitch-fedora.spec.in\n@@ -272,8 +272,6 @@ install -p -D -m 0755 \\\n         rhel/usr_share_openvswitch_scripts_ovs-systemd-reload \\\n         $RPM_BUILD_ROOT%{_datadir}/openvswitch/scripts/ovs-systemd-reload\n \n-# remove unpackaged files\n-rm -f $RPM_BUILD_ROOT%{_bindir}/ovs-parse-backtrace\n # Remove .la files, if present (automatic with %__brp_remove_la_files on f36+).\n rm -f $RPM_BUILD_ROOT%{_libdir}/*.la\n \n@@ -519,7 +517,6 @@ fi\n %{_mandir}/man8/ovs-pki.8*\n %{_mandir}/man8/ovs-vsctl.8*\n %{_mandir}/man8/ovs-vswitchd.8*\n-%{_mandir}/man8/ovs-parse-backtrace.8*\n %{_mandir}/man8/ovs-testcontroller.8*\n %if %{with dpdk}\n %{_prefix}/lib/udev/rules.d/91-vfio.rules\ndiff --git a/rhel/openvswitch.spec.in b/rhel/openvswitch.spec.in\nindex 437e01ee1..6212729bc 100644\n--- a/rhel/openvswitch.spec.in\n+++ b/rhel/openvswitch.spec.in\n@@ -190,7 +190,6 @@ exit 0\n /usr/bin/ovs-dpctl-top\n /usr/bin/ovs-docker\n /usr/bin/ovs-ofctl\n-/usr/bin/ovs-parse-backtrace\n /usr/bin/ovs-pcap\n /usr/bin/ovs-pki\n /usr/bin/ovs-tcpdump\n@@ -226,7 +225,6 @@ exit 0\n /usr/share/man/man8/ovs-flowviz.8.gz\n /usr/share/man/man8/ovs-kmod-ctl.8.gz\n /usr/share/man/man8/ovs-ofctl.8.gz\n-/usr/share/man/man8/ovs-parse-backtrace.8.gz\n /usr/share/man/man8/ovs-pki.8.gz\n /usr/share/man/man8/ovs-tcpdump.8.gz\n /usr/share/man/man8/ovs-vlan-test.8.gz\ndiff --git a/utilities/.gitignore b/utilities/.gitignore\nindex 0a11356d4..035ff386d 100644\n--- a/utilities/.gitignore\n+++ b/utilities/.gitignore\n@@ -19,7 +19,6 @@\n /ovs-lib\n /ovs-ofctl\n /ovs-ofctl.8\n-/ovs-parse-backtrace\n /ovs-pcap\n /ovs-pcap.1\n /ovs-pki\ndiff --git a/utilities/automake.mk b/utilities/automake.mk\nindex a76e077e1..45fcdff2c 100644\n--- a/utilities/automake.mk\n+++ b/utilities/automake.mk\n@@ -11,7 +11,6 @@ bin_SCRIPTS += utilities/ovs-docker \\\n \tutilities/ovs-tcpundump \\\n \tutilities/ovs-dpctl-top \\\n \tutilities/ovs-l3ping \\\n-\tutilities/ovs-parse-backtrace \\\n \tutilities/ovs-test \\\n \tutilities/ovs-vlan-test\n scripts_SCRIPTS += \\\n@@ -55,7 +54,6 @@ EXTRA_DIST += \\\n \tutilities/ovs-kmod-ctl.in \\\n \tutilities/ovs-l3ping.in \\\n \tutilities/ovs-lib.in \\\n-\tutilities/ovs-parse-backtrace.in \\\n \tutilities/ovs-pcap.in \\\n \tutilities/ovs-pipegen.py \\\n \tutilities/ovs-pki.in \\\n@@ -102,7 +100,6 @@ CLEANFILES += \\\n \tutilities/ovs-l3ping \\\n \tutilities/ovs-lib \\\n \tutilities/ovs-ofctl.8 \\\n-\tutilities/ovs-parse-backtrace \\\n \tutilities/ovs-pcap \\\n \tutilities/ovs-pcap.1 \\\n \tutilities/ovs-pki \\\ndiff --git a/utilities/ovs-parse-backtrace.in b/utilities/ovs-parse-backtrace.in\ndeleted file mode 100755\nindex 42f831eed..000000000\n--- a/utilities/ovs-parse-backtrace.in\n+++ /dev/null\n@@ -1,103 +0,0 @@\n-#! @PYTHON3@\n-#\n-# Copyright (c) 2012 Nicira, Inc.\n-#\n-# Licensed under the Apache License, Version 2.0 (the \"License\");\n-# you may not use this file except in compliance with the License.\n-# You may obtain a copy of the License at:\n-#\n-#     http://www.apache.org/licenses/LICENSE-2.0\n-#\n-# Unless required by applicable law or agreed to in writing, software\n-# distributed under the License is distributed on an \"AS IS\" BASIS,\n-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n-# See the License for the specific language governing permissions and\n-# limitations under the License.\n-\n-import optparse\n-import os\n-import re\n-import subprocess\n-import sys\n-\n-\n-addr2line_cache = {}  # None if addr2line is missing or broken.\n-\n-\n-def addr2line(binary, addr):\n-    global addr2line_cache\n-\n-    if addr2line_cache is None:\n-        return \"\"\n-\n-    if addr in addr2line_cache:\n-        return addr2line_cache[addr]\n-\n-    cmd = [\"addr2line\", \"-f\", \"-s\", \"-e\", binary, addr]\n-    try:\n-        proc = subprocess.Popen(cmd, stdout=subprocess.PIPE,\n-                                stderr=subprocess.PIPE)\n-        lines = proc.stdout.readlines()\n-        failed = proc.returncode\n-    except OSError:\n-        failed = True\n-\n-    if failed:\n-        addr2line_cache = None\n-        return \"\"\n-\n-    lines = [l.strip() for l in lines]\n-    return \" \".join(lines)\n-\n-\n-def main():\n-    parser = optparse.OptionParser(version='@VERSION@@VERSION_SUFFIX@',\n-                                   usage=\"usage: %prog [binary]\",\n-                                   description=\"\"\"\\\n-Parses the output of ovs-appctl backtrace producing a more human readable\n-result.  Expected usage is for ovs-appctl backtrace to be piped in.\"\"\")\n-    options, args = parser.parse_args()\n-\n-    if len(args) > 1:\n-        parser.print_help()\n-        sys.exit(1)\n-\n-    if len(args) == 1:\n-        binary = args[0]\n-    else:\n-        binary = \"@sbindir@/ovs-vswitchd\"\n-        debug = \"/usr/lib/debug%s.debug\" % binary\n-        if os.path.exists(debug):\n-            binary = debug\n-\n-    print(\"Binary: %s\\n\" % binary)\n-\n-    stdin = sys.stdin.read()\n-\n-    traces = []\n-    for trace in stdin.strip().split(\"\\n\\n\"):\n-        lines = trace.splitlines()\n-        match = re.search(r'Count (\\d+)', lines[0])\n-        if match:\n-            count = int(match.group(1))\n-        else:\n-            count = 0\n-        traces.append((lines[1:], count))\n-    traces = sorted(traces, key=(lambda x: x[1]), reverse=True)\n-\n-    for lines, count in traces:\n-        longest = max(len(l) for l in lines)\n-\n-        print(\"Backtrace Count: %d\" % count)\n-        for line in lines:\n-            match = re.search(r'\\[(0x.*)]', line)\n-            if match:\n-                print(\"%s %s\" % (line.ljust(longest),\n-                                 addr2line(binary, match.group(1))))\n-            else:\n-                print(line)\n-        print()\n-\n-\n-if __name__ == \"__main__\":\n-    main()\n",
    "prefixes": [
        "ovs-dev"
    ]
}