get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 129051,
    "url": "http://patches.dpdk.org/api/patches/129051/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20230628121938.13452-1-viacheslavo@nvidia.com/",
    "project": {
        "id": 1,
        "url": "http://patches.dpdk.org/api/projects/1/?format=api",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "dev.dpdk.org",
        "list_email": "dev@dpdk.org",
        "web_url": "http://core.dpdk.org",
        "scm_url": "git://dpdk.org/dpdk",
        "webscm_url": "http://git.dpdk.org/dpdk",
        "list_archive_url": "https://inbox.dpdk.org/dev",
        "list_archive_url_format": "https://inbox.dpdk.org/dev/{}",
        "commit_url_format": ""
    },
    "msgid": "<20230628121938.13452-1-viacheslavo@nvidia.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20230628121938.13452-1-viacheslavo@nvidia.com",
    "date": "2023-06-28T12:19:38",
    "name": "eal: fix file descriptor leakage with unhandled messages",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "12f0529c87bb9aa37bfa45daeb5b3db62e4f1e61",
    "submitter": {
        "id": 1926,
        "url": "http://patches.dpdk.org/api/people/1926/?format=api",
        "name": "Slava Ovsiienko",
        "email": "viacheslavo@nvidia.com"
    },
    "delegate": {
        "id": 24651,
        "url": "http://patches.dpdk.org/api/users/24651/?format=api",
        "username": "dmarchand",
        "first_name": "David",
        "last_name": "Marchand",
        "email": "david.marchand@redhat.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20230628121938.13452-1-viacheslavo@nvidia.com/mbox/",
    "series": [
        {
            "id": 28687,
            "url": "http://patches.dpdk.org/api/series/28687/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=28687",
            "date": "2023-06-28T12:19:38",
            "name": "eal: fix file descriptor leakage with unhandled messages",
            "version": 1,
            "mbox": "http://patches.dpdk.org/series/28687/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/129051/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/129051/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@inbox.dpdk.org",
        "Delivered-To": "patchwork@inbox.dpdk.org",
        "Received": [
            "from mails.dpdk.org (mails.dpdk.org [217.70.189.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 3362942D80;\n\tWed, 28 Jun 2023 14:20:16 +0200 (CEST)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id BB2C440151;\n\tWed, 28 Jun 2023 14:20:15 +0200 (CEST)",
            "from NAM12-MW2-obe.outbound.protection.outlook.com\n (mail-mw2nam12on2042.outbound.protection.outlook.com [40.107.244.42])\n by mails.dpdk.org (Postfix) with ESMTP id 985BA400EF;\n Wed, 28 Jun 2023 14:20:13 +0200 (CEST)",
            "from BN9PR03CA0651.namprd03.prod.outlook.com (2603:10b6:408:13b::26)\n by DS7PR12MB5983.namprd12.prod.outlook.com (2603:10b6:8:7e::18) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6521.24; Wed, 28 Jun\n 2023 12:20:09 +0000",
            "from BN8NAM11FT016.eop-nam11.prod.protection.outlook.com\n (2603:10b6:408:13b:cafe::cd) by BN9PR03CA0651.outlook.office365.com\n (2603:10b6:408:13b::26) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6521.34 via Frontend\n Transport; Wed, 28 Jun 2023 12:20:09 +0000",
            "from mail.nvidia.com (216.228.117.161) by\n BN8NAM11FT016.mail.protection.outlook.com (10.13.176.97) with Microsoft SMTP\n Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n 15.20.6500.48 via Frontend Transport; Wed, 28 Jun 2023 12:20:08 +0000",
            "from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com\n (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.5; Wed, 28 Jun 2023\n 05:19:53 -0700",
            "from nvidia.com (10.126.230.35) by rnnvmail201.nvidia.com\n (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.37; Wed, 28 Jun\n 2023 05:19:51 -0700"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;\n b=ckW0PWdgp4Sls9Gom8PD96aqA4upPbUwi3ROoD+qeJ7UqSrpOiz+RbGIRHUA836Orih/ny/2hJZdyLbBcpbR7D4YOGEqDjogryYIz4hcMzutB5OlAUtxwPNRLtHaoxHGcn/BOxkBixv/t8+X70aDq1m4m7eJ4v89ENwgfJKNdu+CR4QvzOY+dIaa7TB2eoNBljLWJSmZNVbjaIZxtoGxMyzYYc/gWYgHZPGkXZjqrCU0LWdHOx1BFMbVrPLBu8Q+CtJR6kVbiR/qedMaSLC3gU9UPovXEWNdL/SW06QKF6/2QqpBtrOfU4Jypa5ldMTJ2Zygl9PRIhUy3femYPoJMg==",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector9901;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;\n bh=PKb8oat+S9zh3NlSzZTkqAQoGMkeVfUZQIjfKsHdykw=;\n b=ldaq9nxztnvtAefVTrsLsnRLpU83BGqwaj61oAvslOCWCd371WRvaNwPqDkvSyygDVTOvrn2VtMc7XqG1iukwxvhZyGWf58pUVwFtTmUUEDoQII+DmanEwec5/vUVgBpde72nFNWNvqqDqz2/zUDziydhfSwxNAb022p7afKBykP8fT0v/+h2b17j/Pkcf/5xZvC2xS5e4EatQvUpXhsDrUWfM+2c3/Ga6PmRyBJdrWku1+mPhbhU07oydtMb9bEsTTvsEaANe+WTp+2xgwjwfoQtmJdUeIIA0lUOpHAlsD1rTr5I6HnkHaQniq1qtMoDQ834Ad+ONHFsuVxdGD9NA==",
        "ARC-Authentication-Results": "i=1; mx.microsoft.com 1; spf=pass (sender ip is\n 216.228.117.161) smtp.rcpttodomain=dpdk.org smtp.mailfrom=nvidia.com;\n dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com;\n dkim=none (message not signed); arc=none",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com;\n s=selector2;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=PKb8oat+S9zh3NlSzZTkqAQoGMkeVfUZQIjfKsHdykw=;\n b=VZePXQl79fVdlXbzFGWMduUwI9zROTd7x/E/LFF2ipjQbGV5z2sw078+YZ2uwjEQSleyrFsScO2/ad9gQwt8buqy6WdLyF0yxFJO8MZ5Os4smUmiF2/MBe7zqF0PnlqcMGmljMu8cBmH6G/jKX8Ch4DJdIwR45yDrN+8BDI4CuIq2IvZC44xDG7I8XKTNmPgQOp/QLXyfNByfZ+m4C06x8AEC/0t11pW9HeEjPjd3N8aPxx7BgaI/NBZtmUwIIn2+m7ZbgRm0lPj5VdNkpgoabVOwGk5vZYASKXyfrjdPmHAvLKio2mHyvNmraJDXKHpgqpDpnWWplwnD6FimRMbUQ==",
        "X-MS-Exchange-Authentication-Results": "spf=pass (sender IP is 216.228.117.161)\n smtp.mailfrom=nvidia.com;\n dkim=none (message not signed)\n header.d=none;dmarc=pass action=none header.from=nvidia.com;",
        "Received-SPF": "Pass (protection.outlook.com: domain of nvidia.com designates\n 216.228.117.161 as permitted sender) receiver=protection.outlook.com;\n client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C",
        "From": "Viacheslav Ovsiienko <viacheslavo@nvidia.com>",
        "To": "<dev@dpdk.org>",
        "CC": "<anatoly.burakov@intel.com>, <stable@dpdk.org>",
        "Subject": "[PATCH] eal: fix file descriptor leakage with unhandled messages",
        "Date": "Wed, 28 Jun 2023 15:19:38 +0300",
        "Message-ID": "<20230628121938.13452-1-viacheslavo@nvidia.com>",
        "X-Mailer": "git-send-email 2.18.1",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain",
        "X-Originating-IP": "[10.126.230.35]",
        "X-ClientProxiedBy": "rnnvmail201.nvidia.com (10.129.68.8) To\n rnnvmail201.nvidia.com (10.129.68.8)",
        "X-EOPAttributedMessage": "0",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-TrafficTypeDiagnostic": "BN8NAM11FT016:EE_|DS7PR12MB5983:EE_",
        "X-MS-Office365-Filtering-Correlation-Id": "60a06d97-146d-4002-2404-08db77d203b0",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-MS-Exchange-AntiSpam-Relay": "0",
        "X-Microsoft-Antispam": "BCL:0;",
        "X-Microsoft-Antispam-Message-Info": "\n HDt5OrsfvMh232oPA6UZ+5B+iIS1XIK42XWlM7WXFNXPAOVve7gQRljM2F35RefeKTg55nDB6F+fLWAXncRG1yjySAp1CZuBMNoWWtpJemTbm/S0tX8Gl6EuepImpa8XR3Me606w8KtGRnYTZPQPM8/oqJmeUPq8ddLqcTzAKQx0vtx0+PXHm7JmnhWAsX7mnwRY2gGSVaZkYrYItTRRQO2JeMXnLNk/fY0jNNh/Xe/nydChn2ybHpjoSPWKXEDnJ7PuqtcNj585HqUDoYdAt4lk3v1X6LSD/DthWvT1tTB8g9iFX7sOzuTvMDh3jqXqEtZjFjLngXkG4R3bmnuSPoNLu0CeRV81F3YnZMM0GdBMxry+60Gc+qbSzHwjvMU8KutsN7DhVqpNPFqVlzKDtDN0ofEbmtH/WKv3DseQRb79PTEGS7+BSsmJXZw7+QqoGAaDXpyk1aMQu9P2mzrMezvPTODl8IL7RCxhtw6ibcMwVmDVLcqkUlhqxpSPtzA4cmM7PZnwohzNJTWb5m8T5Mz/ep5YlcyRwXxD9ABDISuZOmcwOPiSBeAMiSG8LvrX2CtSGlZoMGA4HtMo8DVzRo/HePW267AqJI6viUPkdlHlqD+KkvKoN/ULK1RvrTmx64n52lpa7VtOgt2zQeOOSKbJBhB4tNHjr9sJNnZJuJ1jn5/XBXnSFAVAsTt7Wlyc/W1n6GwU1mhZKfVX2S247sXpngEVm/nygKz2kB7sfnEdlbWFR9lpbjYmGtBc9276",
        "X-Forefront-Antispam-Report": "CIP:216.228.117.161; CTRY:US; LANG:en; SCL:1;\n SRV:;\n IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge2.nvidia.com; CAT:NONE;\n SFS:(13230028)(4636009)(376002)(396003)(39860400002)(136003)(346002)(451199021)(36840700001)(46966006)(40470700004)(83380400001)(336012)(426003)(47076005)(8936002)(6666004)(316002)(7696005)(8676002)(54906003)(4326008)(41300700001)(40460700003)(36860700001)(36756003)(40480700001)(55016003)(82740400003)(86362001)(7636003)(356005)(82310400005)(2616005)(5660300002)(6916009)(478600001)(70206006)(2906002)(6286002)(186003)(16526019)(70586007)(15650500001)(26005)(1076003);\n DIR:OUT; SFP:1101;",
        "X-OriginatorOrg": "Nvidia.com",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "28 Jun 2023 12:20:08.9582 (UTC)",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 60a06d97-146d-4002-2404-08db77d203b0",
        "X-MS-Exchange-CrossTenant-Id": "43083d15-7273-40c1-b7db-39efd9ccc17a",
        "X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp": "\n TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.117.161];\n Helo=[mail.nvidia.com]",
        "X-MS-Exchange-CrossTenant-AuthSource": "\n BN8NAM11FT016.eop-nam11.prod.protection.outlook.com",
        "X-MS-Exchange-CrossTenant-AuthAs": "Anonymous",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "HybridOnPrem",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "DS7PR12MB5983",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.29",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org"
    },
    "content": "The sendmsg()/recvmsg() API is used to establish communication between\nthe DPDK processes. The API supposes inter-process file descriptors\nsending and conversion, the recipient sees the resulting descriptors\nin the received message - the operating systems creates ones in the\nright context.\n\nThe message receiving is performed by EAL in the dedicated thread\nand it might happen the message is received by EAL and not handled\nby addressed PMD or application due to some reasons (timeouts, race\ncondition, etc). EAL just dropped unhandled messages causing the\nfile descriptor leakage if these ones were presented in the message.\n\nThe patch closes the descriptors (if any) in unhandled messages.\n\nFixes: 783b6e54971 (\"eal: add synchronous multi-process communication\")\nCc: stable@dpdk.org\n\nSigned-off-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>\n---\n lib/eal/common/eal_common_proc.c | 14 +++++++++++++-\n 1 file changed, 13 insertions(+), 1 deletion(-)",
    "diff": "diff --git a/lib/eal/common/eal_common_proc.c b/lib/eal/common/eal_common_proc.c\nindex 1fc1d6c53b..9676dd73c5 100644\n--- a/lib/eal/common/eal_common_proc.c\n+++ b/lib/eal/common/eal_common_proc.c\n@@ -321,6 +321,15 @@ read_msg(int fd, struct mp_msg_internal *m, struct sockaddr_un *s)\n \treturn msglen;\n }\n \n+static void\n+cleanup_msg_fds(const struct rte_mp_msg *msg)\n+{\n+\tint i;\n+\n+\tfor (i = 0; i < msg->num_fds; i++)\n+\t\tclose(msg->fds[i]);\n+}\n+\n static void\n process_msg(struct mp_msg_internal *m, struct sockaddr_un *s)\n {\n@@ -349,8 +358,10 @@ process_msg(struct mp_msg_internal *m, struct sockaddr_un *s)\n \t\t\telse if (pending_req->type == REQUEST_TYPE_ASYNC)\n \t\t\t\treq = async_reply_handle_thread_unsafe(\n \t\t\t\t\t\tpending_req);\n-\t\t} else\n+\t\t} else {\n \t\t\tRTE_LOG(ERR, EAL, \"Drop mp reply: %s\\n\", msg->name);\n+\t\t\tcleanup_msg_fds(msg);\n+\t\t}\n \t\tpthread_mutex_unlock(&pending_requests.lock);\n \n \t\tif (req != NULL)\n@@ -380,6 +391,7 @@ process_msg(struct mp_msg_internal *m, struct sockaddr_un *s)\n \t\t\tRTE_LOG(ERR, EAL, \"Cannot find action: %s\\n\",\n \t\t\t\tmsg->name);\n \t\t}\n+\t\tcleanup_msg_fds(msg);\n \t} else if (action(msg, s->sun_path) < 0) {\n \t\tRTE_LOG(ERR, EAL, \"Fail to handle message: %s\\n\", msg->name);\n \t}\n",
    "prefixes": []
}