get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 2227494,
    "url": "http://patchwork.ozlabs.org/api/patches/2227494/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/glibc/patch/PR3PR06MB688962588B9E9A50636E7334FF2A2@PR3PR06MB6889.eurprd06.prod.outlook.com/",
    "project": {
        "id": 41,
        "url": "http://patchwork.ozlabs.org/api/projects/41/?format=api",
        "name": "GNU C Library",
        "link_name": "glibc",
        "list_id": "libc-alpha.sourceware.org",
        "list_email": "libc-alpha@sourceware.org",
        "web_url": "",
        "scm_url": "",
        "webscm_url": "",
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<PR3PR06MB688962588B9E9A50636E7334FF2A2@PR3PR06MB6889.eurprd06.prod.outlook.com>",
    "list_archive_url": null,
    "date": "2026-04-23T19:50:31",
    "name": "nptl: futex_lock_pi deadlock detection provides valuable information but it is turned into a rather cryptic assertion failure",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "d67770dc0b3e1af7e178c10a408dcdffe7676d8e",
    "submitter": {
        "id": 93041,
        "url": "http://patchwork.ozlabs.org/api/people/93041/?format=api",
        "name": "Moritz KLAMMLER (FERCHAU)",
        "email": "Moritz.Klammler@ferchau.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/glibc/patch/PR3PR06MB688962588B9E9A50636E7334FF2A2@PR3PR06MB6889.eurprd06.prod.outlook.com/mbox/",
    "series": [
        {
            "id": 501239,
            "url": "http://patchwork.ozlabs.org/api/series/501239/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/glibc/list/?series=501239",
            "date": "2026-04-23T19:50:31",
            "name": "nptl: futex_lock_pi deadlock detection provides valuable information but it is turned into a rather cryptic assertion failure",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/501239/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2227494/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2227494/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<libc-alpha-bounces~incoming=patchwork.ozlabs.org@sourceware.org>",
        "X-Original-To": [
            "incoming@patchwork.ozlabs.org",
            "libc-alpha@sourceware.org"
        ],
        "Delivered-To": [
            "patchwork-incoming@legolas.ozlabs.org",
            "libc-alpha@sourceware.org"
        ],
        "Authentication-Results": [
            "legolas.ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n unprotected) header.d=ferchau.com header.i=@ferchau.com header.a=rsa-sha256\n header.s=s2048 header.b=HoSAkXZ+;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=ablegroupde.onmicrosoft.com header.i=@ablegroupde.onmicrosoft.com\n header.a=rsa-sha256 header.s=selector1-ablegroupde-onmicrosoft-com\n header.b=XYVr3GEr;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=sourceware.org\n (client-ip=2620:52:6:3111::32; helo=vm01.sourceware.org;\n envelope-from=libc-alpha-bounces~incoming=patchwork.ozlabs.org@sourceware.org;\n receiver=patchwork.ozlabs.org)",
            "sourceware.org;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key,\n unprotected) header.d=ferchau.com header.i=@ferchau.com header.a=rsa-sha256\n header.s=s2048 header.b=HoSAkXZ+;\n\tdkim=pass (1024-bit key,\n unprotected) header.d=ablegroupde.onmicrosoft.com header.i=@ablegroupde.onmicrosoft.com\n header.a=rsa-sha256 header.s=selector1-ablegroupde-onmicrosoft-com\n header.b=XYVr3GEr",
            "sourceware.org;\n dmarc=pass (p=none dis=none) header.from=ferchau.com",
            "sourceware.org; spf=pass smtp.mailfrom=ferchau.com",
            "server2.sourceware.org;\n arc=pass smtp.remote-ip=212.211.156.0",
            "dkim=none (message not signed)\n header.d=none;dmarc=none action=none header.from=ferchau.com;"
        ],
        "Received": [
            "from vm01.sourceware.org (vm01.sourceware.org\n [IPv6:2620:52:6:3111::32])\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 4g1mtS3BlKz1y2d\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 24 Apr 2026 05:51:07 +1000 (AEST)",
            "from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 8FCCE4B99F4A\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 23 Apr 2026 19:51:05 +0000 (GMT)",
            "from mx2.ferchau.com (smtp.ablegroup.de [212.211.156.0])\n by sourceware.org (Postfix) with ESMTPS id 261CA4B99F51\n for <libc-alpha@sourceware.org>; Thu, 23 Apr 2026 19:50:39 +0000 (GMT)",
            "from gmzrzex002.ferchau.local ([10.100.54.2])\n by mx2.ferchau.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 23 Apr 2026 21:50:37 +0200",
            "from GMZRZEX002.Ferchau.local (10.100.54.2) by\n GMZRZEX002.Ferchau.local (10.100.54.2) with Microsoft SMTP Server\n (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n 15.2.2562.35; Thu, 23 Apr 2026 21:50:37 +0200",
            "from DB3PR08CU002.outbound.protection.outlook.com (40.93.64.82) by\n exchange.ferchau.com (172.16.19.112) with Microsoft SMTP Server\n (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n 15.2.2562.35 via Frontend Transport; Thu, 23 Apr 2026 21:50:37 +0200",
            "from PR3PR06MB6889.eurprd06.prod.outlook.com (2603:10a6:102:87::9)\n by AM9PR06MB8212.eurprd06.prod.outlook.com (2603:10a6:20b:3a7::23) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9846.16; Thu, 23 Apr\n 2026 19:50:32 +0000",
            "from PR3PR06MB6889.eurprd06.prod.outlook.com\n ([fe80::7396:2256:3ddb:4637]) by PR3PR06MB6889.eurprd06.prod.outlook.com\n ([fe80::7396:2256:3ddb:4637%3]) with mapi id 15.20.9846.021; Thu, 23 Apr 2026\n 19:50:32 +0000"
        ],
        "DKIM-Filter": [
            "OpenDKIM Filter v2.11.0 sourceware.org 8FCCE4B99F4A",
            "OpenDKIM Filter v2.11.0 sourceware.org 261CA4B99F51"
        ],
        "DMARC-Filter": "OpenDMARC Filter v1.4.2 sourceware.org 261CA4B99F51",
        "ARC-Filter": "OpenARC Filter v1.0.0 sourceware.org 261CA4B99F51",
        "ARC-Seal": [
            "i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1776973839; cv=pass;\n b=RtADq90TyNdls2nO2HREjj7dzvcNU52mRWy7Q77Tjfu/z4DapUdL8GqMyMO1jBp7rtxepW1vAXbzhJJaQfg+G30LaJ3P6/BlsWr3PZmmbyt8W7kgjTxSge42mmqr+F2yOeD4yD1+6/w8hKslQFXzSLtztWLJylDpkB2CJwRiD0E=",
            "i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=xJ7KTQrKIwBc90Dpzze6JIedWH9JuPoYcT4wcW16tdBYn47BhueHzqKfRttqX9BjkMcCPrmf9VR7OvZsQTixBePQfqc9l1PYG7rL4sSIGtVjAavoaJGYshrNUfBuV6QswJu5CsNRLs+4EbpEzJ8prkRLWUzIxSbLJ1uAwEd5p+7LYbaDQhXgE0l1Xeg2adkv8U0Eg+IbMF2KIbCVn6pSxsOu5pso2EgJdn++8CpSzpIjyqSeu4yTbiDoWeBbHlpFbwo14+vxmID6j0urRE4kbCqnq3jAPFmefZ5VWwqFyF0IK5m60mMm2rLozMLMxkwUjZeLMcFpQMAeQ5txOpnfyg=="
        ],
        "ARC-Message-Signature": [
            "i=2; a=rsa-sha256; d=sourceware.org; s=key;\n t=1776973839; c=relaxed/simple;\n bh=4xnKuK2YvEJZT4wUP3Mm8N2UNp1xdf+eRblg1Rs0mOc=;\n h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID:\n MIME-Version;\n b=IFI7+3wAup9axNC1bt0ZvWTgtFKkBN6/23FfPPu8phLoOUc8MmC0nHoBkCCwT2NA28wa1ot9qUUlY9vkUOnMqU3CexYEmTM0nP4LaXOICRfTDpmhB2JZK9Grgu2aD4T8udBkzFFewEcp7sJybX1nm7cu4uaJ94C5/PSBtItV9wU=",
            "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector10001;\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=aDlTZP8KnuAyn093p4zQUiN+av2k6lFE2iUq3DukNfo=;\n b=ZrIvQLfZXIJtr6Vl2rQ1VVDTDJjbHfpMt3SO1FilS9zUK8RaaF5QQzUdlZDGJNQVTanCNtTJ1G+QSjlTOcipjnAWPCfT0W9BkUP8MybnLJ6uFpkig6gb4lcE+VO05v2Aesofj3kB2q6uvvo9TWYKSD5eFPUMqWOX03ntTPO8ZlIKL2pFf7NsU3fi6UPXxPsMI2eKrkJerOrKHOxnCkMsa730LDUJkgl2S6c/lyVZMf8/Ouk8Ei5bgvZlvp6rX395IlweOGps60UehSMR7BiegD3HMFQrAXCW24AYP/ohBaR6qt5gLSbzcUS6wHLQBzXMQBDkH1LUabGXpbMxWnhhdg=="
        ],
        "ARC-Authentication-Results": [
            "i=2; server2.sourceware.org",
            "i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=ferchau.com; dmarc=pass action=none header.from=ferchau.com;\n dkim=pass header.d=ferchau.com; arc=none"
        ],
        "DKIM-Signature": [
            "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=ferchau.com; i=@ferchau.com; q=dns/txt; s=s2048;\n t=1776973839; x=1808509839; h=arc-seal:arc-message-signature:\n arc-authentication-results:dkim-signature:from:to:cc:\n subject:thread-topic:thread-index:date:message-id:\n references:in-reply-to:accept-language:content-language:\n x-ms-has-attach:x-ms-tnef-correlator:msip_labels:\n authentication-results:x-ms-publictraffictype:\n x-ms-traffictypediagnostic:\n x-ms-office365-filtering-correlation-id:\n x-ms-exchange-senderadcheck:x-ms-exchange-antispam-relay:\n x-microsoft-antispam:x-microsoft-antispam-message-info:\n x-forefront-antispam-report:\n x-ms-exchange-antispam-messagedata-chunkcount:\n x-ms-exchange-antispam-messagedata-0:content-type:\n content-transfer-encoding:mime-version:\n x-exchange-routingpolicychecked:\n x-ms-exchange-crosstenant-authas:\n x-ms-exchange-crosstenant-authsource:\n x-ms-exchange-crosstenant-network-message-id:\n x-ms-exchange-crosstenant-originalarrivaltime:\n x-ms-exchange-crosstenant-fromentityheader:\n x-ms-exchange-crosstenant-id:\n x-ms-exchange-crosstenant-mailboxtype:\n x-ms-exchange-crosstenant-userprincipalname:\n x-ms-exchange-transport-crosstenantheadersstamped:\n x-cse-connectionguid:x-cse-msgguid:ironport-data:\n ironport-hdrordr:x-talos-cuid:x-talos-muid:x-ironport-av;\n bh=aDlTZP8KnuAyn093p4zQUiN+av2k6lFE2iUq3DukNfo=;\n b=HoSAkXZ+6vR1EJB01NgNp09gXNmLE747Nl26FK7aFG8TAUWyjMnhvqWA\n P8T20Yk5KiMTc92QEXX9KL9ZQGR0mBte5h5sE3RL6c7h0dKgACI4ArXJh\n o9CeAQA3ZyijuP6MyFYatYz6K9crDg6HDUX8XkeaEDfSjDrvYNPJMe+zD\n wD3olWeHM5mifwZMpUl21R7fnROa0F0/WG0C2ZPWI80OkHslJJP7pNUAp\n 09rJ3TarLpVG7csTbAXRtKGJE1/0S0YhkQrAb1OXCn9xVt3fp0DW3jFKT\n JxJo3eHPM/RnjH2V0bIeBfNE8TjxYdTUTSTGfst3ZCiVt12+i0oQjr50x w==;",
            "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=ablegroupde.onmicrosoft.com; s=selector1-ablegroupde-onmicrosoft-com;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=aDlTZP8KnuAyn093p4zQUiN+av2k6lFE2iUq3DukNfo=;\n b=XYVr3GErdbrc+PncLjBQEgB5XuIxZouGqusdUWVuFN31XfRFTtoHVoU9vkMVY4WjZ+Dbo57CIYca0EZf+d9atxL7dUlpemLCN0z74H4JD9/MBuC1uHU9olcuqyHNop91QiLJGMsvlx5RGs/zU7zGQxXp1l6boilAk4vjn1K/IRU="
        ],
        "X-CSE-ConnectionGUID": "somDuRi5SRyHmL0Yfi53Uw==",
        "X-CSE-MsgGUID": "JeJ0HxfwQ6GcnX4ohRbtRQ==",
        "IronPort-Data": "A9a23:XQqF5aCG3G3NDxVW/zDiw5YqxClBgxIJ4kV8jS/XYbTApG8j3mYEy\n mtOXTzTO/eCZjfwL490b47l8EoC6sWGmtZrTANkpHpgcSlH+JHPbTi7wuccHM8zwunrFh8PA\n xA2M4GYRCwMZiaC4E/rbv659CcUOZigHtLUEPTDNj16WThqQSIgjQMLs+Mii+aEu/Dga++2k\n Y20+Za31GONgWYubDpIsfnb9HuDgdyp0N8mlg1mDRx0lAKG/5UlJMp3Db28KXL+Xr5VEoaSL\n 87fzKu093/u5BwkDNWoiN7TKiXmlZaLYGBiIlIPM0STqkAqSh4ai87XB9JFAatjsAhlqvgqo\n Dl7WTxcfi9yVkHEsLx1vxC1iEiSN4UekFPMCSDXXcB+UyQq2pYjqhljJBheAGEWxgp4KXpJ8\n NAFEjFQVSqSp+eSmIO1S7Q3u9t2eaEHPKtH0p1h5R78P8wUbKCbG/+My9JC1zc5m4ZKGv3XY\n 6L1axI2NFKZO0UJZwtRUvrSn8/x7pX7WxhfslOJt+wU52HWyQh8ypDjPcDeetWXA85Smy50o\n 0qcpTSoX09BXDCZ4RiI0CqMluHQpH3UU4QiSLq4zPR2umTGkwT/DzVTDzNXu8KRg0K+VtdSM\n VId/mw8pK4/8EiiZt38WRSipziDpBF0c9RPHuw/5Rul0KfY4w+FQGMDS1ZpY9U8sMgtbSYn2\n l+Ag5XiAjkHmLmUQ3nY/7OMrTqaIi8IN2QPeiYeQE0C+daLnW0oph3KXMxxHb7t1oezFzzqy\n DCDsW46gL4aiabnypmGwLwOuBr0zrChc+L/zly/sr6Nhu+hWLOYWg==",
        "IronPort-HdrOrdr": "A9a23:lXERCKMosQljHsBcT5H255DYdb4zR+YMi2TDiHofdfUFSKClfp\n 6V8cjzjSWE9Qr4WBkb6LW90dq7MA/hHPlOkMUs1NaZLUTbUQ6TQr2KgrGSugEIdxeOldK1kJ\n 0QCZSWa+eAQmSS7/yKmDVQeuxIqLLskcCVbKXlvgxQpGlRGvldBmxCe2Km+zhNNW977O0CZf\n 2hD6R81lidUEVSQtWwB3EDUeSGnNvWiZLgbycBAh4s+COOgTmr5LOSKWnX4j4uFxd0hZsy+2\n nMlAL0oo+5teug9xPa32jPq7xLhdrI0LJ4dY2xo/lQDg+pphejZYxnVbHHlisyuvuT5FEjl8\n SJiws8Pv5092jacgiO0FvQMkjboXUTAk3ZuBqlaEjY0IjErfUBeo18bLdiA1nkAowbzZdBOe\n xwrjukXtFsfGz9dWzGlqb1vlhR5zqJSXZOq59js1VPFYQZc7NftooZ4QdcF4oBBjvz7MQ9HP\n BpF9y03ocfTbq2VQGugoBU+q3kYl0jWhOdBkQSsM2c1DZb2Hh/0ksD3cQa2nMN7og0RZVI7/\n nNdv0ArsAFcuYGKaZmQOsRS8q+DWLABRrKLWKJOFziUKUKIWjEpZL76Kg8oOuqZJsLxp0vn4\n mpaiISiUciP0b1TcGe1pxC9R7ABG27QDT208lbo4N0v7XtLYCbRhFriGpe5/dIj89vd/EzAc\n zDS66+K8WTX1fTJQ==",
        "X-Talos-CUID": "9a23:5hQiN2CmbvZisqL6EzJg8WIJIMF4SUfM7HL0e362CDsydaLAHA==",
        "X-Talos-MUID": "9a23:PIl7iAlc1T3CSFIyh+BVdnpAOeUww7SgF3lTvp4Ai5WDNRZ6Jw2k2WE=",
        "X-IronPort-AV": "E=Sophos;i=\"6.23,195,1770591600\";\n   d=\"scan'208\";a=\"2289563\"",
        "From": "\"Moritz KLAMMLER (FERCHAU)\" <Moritz.Klammler@ferchau.com>",
        "To": "Adhemerval Zanella Netto <adhemerval.zanella@linaro.org>, Florian Weimer\n <fweimer@redhat.com>",
        "CC": "Carlos O'Donell <carlos@redhat.com>, \"libc-alpha@sourceware.org\"\n <libc-alpha@sourceware.org>",
        "Subject": "[PATCH] nptl: futex_lock_pi deadlock detection provides valuable\n information but it is turned into a rather cryptic assertion failure",
        "Thread-Topic": "[PATCH] nptl: futex_lock_pi deadlock detection provides valuable\n information but it is turned into a rather cryptic assertion\n failure",
        "Thread-Index": "\n AQHcbnK4Dzm02VYQ8EyWQ8MgFDPAAbUl6RwAgKa+5hCABn8tAIADIbsWgAlw5YCAAAiXgIAAssIhgABjqgCAAAtZQoAABGiAgAfb1aGAABobgIAE+GVX",
        "Date": "Thu, 23 Apr 2026 19:50:31 +0000",
        "Message-ID": "\n <PR3PR06MB688962588B9E9A50636E7334FF2A2@PR3PR06MB6889.eurprd06.prod.outlook.com>",
        "References": "\n <PR3PR06MB688909B85CF5747F25CF2713FFAAA@PR3PR06MB6889.eurprd06.prod.outlook.com>\n <2bf1c649-8a6a-4f9e-9bc7-c01f2fce81c6@linaro.org>\n <PR3PR06MB6889BC6F2317E93C3D09ECFAFF51A@PR3PR06MB6889.eurprd06.prod.outlook.com>\n <34621bae-9591-4a43-84f8-245692d31fbc@linaro.org>\n <PR3PR06MB6889550A149BDACDCCA6C021FF5B2@PR3PR06MB6889.eurprd06.prod.outlook.com>\n <52db35a1-7d72-40d5-9c6f-3e5082402c7b@linaro.org>\n <23650a5e-baf4-4811-91f8-6950b1d0a3ed@redhat.com>\n <lhumrz48z3p.fsf@oldenburg.str.redhat.com>\n <52c94712-799a-42e8-b996-526728f8b8bd@linaro.org>\n <lhuo6jk5nkk.fsf@oldenburg.str.redhat.com>\n <75b91c7c-385f-41d1-8ddc-fa1b86cefe8f@linaro.org>\n <PR3PR06MB688971B81D9DF02440A469A9FF2F2@PR3PR06MB6889.eurprd06.prod.outlook.com>\n <a986d87e-3628-4ca5-ad45-38bf26c01670@linaro.org>",
        "In-Reply-To": "<a986d87e-3628-4ca5-ad45-38bf26c01670@linaro.org>",
        "Accept-Language": "de-DE, en-US",
        "Content-Language": "de-DE",
        "X-MS-Has-Attach": "",
        "X-MS-TNEF-Correlator": "",
        "msip_labels": "",
        "authentication-results": [
            "legolas.ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n unprotected) header.d=ferchau.com header.i=@ferchau.com header.a=rsa-sha256\n header.s=s2048 header.b=HoSAkXZ+;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=ablegroupde.onmicrosoft.com header.i=@ablegroupde.onmicrosoft.com\n header.a=rsa-sha256 header.s=selector1-ablegroupde-onmicrosoft-com\n header.b=XYVr3GEr;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=sourceware.org\n (client-ip=2620:52:6:3111::32; helo=vm01.sourceware.org;\n envelope-from=libc-alpha-bounces~incoming=patchwork.ozlabs.org@sourceware.org;\n receiver=patchwork.ozlabs.org)",
            "sourceware.org;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key,\n unprotected) header.d=ferchau.com header.i=@ferchau.com header.a=rsa-sha256\n header.s=s2048 header.b=HoSAkXZ+;\n\tdkim=pass (1024-bit key,\n unprotected) header.d=ablegroupde.onmicrosoft.com header.i=@ablegroupde.onmicrosoft.com\n header.a=rsa-sha256 header.s=selector1-ablegroupde-onmicrosoft-com\n header.b=XYVr3GEr",
            "sourceware.org;\n dmarc=pass (p=none dis=none) header.from=ferchau.com",
            "sourceware.org; spf=pass smtp.mailfrom=ferchau.com",
            "server2.sourceware.org;\n arc=pass smtp.remote-ip=212.211.156.0",
            "dkim=none (message not signed)\n header.d=none;dmarc=none action=none header.from=ferchau.com;"
        ],
        "x-ms-publictraffictype": "Email",
        "x-ms-traffictypediagnostic": "PR3PR06MB6889:EE_|AM9PR06MB8212:EE_",
        "x-ms-office365-filtering-correlation-id": "41331728-9385-4aed-b109-08dea17193fc",
        "x-ms-exchange-senderadcheck": "1",
        "x-ms-exchange-antispam-relay": "0",
        "x-microsoft-antispam": "BCL:0;\n ARA:13230040|366016|376014|1800799024|18096099003|18002099003|56012099003|22082099003|38070700021;",
        "x-microsoft-antispam-message-info": "\n /nQFfV9Fab108HPGL6ai80fSgJEQAM25LMCHJdR9zi4S/FDRq2vQhnlfDLU0Jk6WTGguZguSqOk1yyI8YKhizqvw1b+PQ9oIqv45fDYRK9fck3BDGCgLQi5WWeaucUbM8ZIclVPsGtOo/xYmjGvVuA0ahHScHs8bwa72HKP1W0uppf+5mC+AnSrTUEfjg1pM4h5W+INRekCN2Ty5vsBns2XXsUz4LURduO4y2PQjo6/WNuS+QOA6Ddow67nEOmKKAAHVUauUsQn2K4C6+SvCEwnGMALO5DcdqlocRom9Aanfb3lBpELWujl4HB3741Qjm5nbqIN6MCiX3k2yhp+NMuzlRyUppPH8+k2IK22iAVF+2mLrFZ5qFn9CvBgouVP9tlUpn705cOFoR6rfDWvkewhWWDTxGxNsgXHfZfHK7TtUhTu+e87X0LAOYNHX6J+7EbCu/ItWCqtWMtwOsW8dvkNS+JJW7QtJXwse+OBwPNNwDQ7r95JneCUXfJ3D9oHUPYWhraM8ORMV7iU4i9ZPAvh08tClg3ZtzabV31KpqPoMttI63Xuc4Vf7eK4zNs0pdZT2YuGViEN83iSNu3X6I5UzzxIcw8HcqQx/sKQq4XwQPMy2U+SWFczFOMiYtoCwDWvgJhdmTVoT9vIuU6hWrl7HuBSE+qFOJNvrckyIQCy1hWA4HVEvAVbP+IZr4wykxsLJH7X9/sf0FB7HG8F0ngzsE7BxofllhQhXBQBE7kt6sxBZH0/xHUdX1u3PRqKpyIdjBfzXalsaf1he29tySjKHfc8gY4Vvpx4HSVA+Sn0=",
        "x-forefront-antispam-report": "CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;\n IPV:NLI; SFV:NSPM; H:PR3PR06MB6889.eurprd06.prod.outlook.com; PTR:; CAT:NONE;\n SFS:(13230040)(366016)(376014)(1800799024)(18096099003)(18002099003)(56012099003)(22082099003)(38070700021);\n DIR:OUT; SFP:1102;",
        "x-ms-exchange-antispam-messagedata-chunkcount": "1",
        "x-ms-exchange-antispam-messagedata-0": "=?iso-8859-1?q?F9QgTEtZ5riNvbQWYD86MBR?=\n\t=?iso-8859-1?q?ArwbDcF0boKcswtrEc16r3hYc/abbX34enSMpawC859gxOQdu9ZpgVoMIABN?=\n\t=?iso-8859-1?q?lHkHFsFUXS+/YMVr60qMa3w65TFAOQeIPST6zgyzD9GXs6jGqLqHi4l60pPo?=\n\t=?iso-8859-1?q?jU4oxfrLHRDLaNMl9LFOIo6vSW0PZnGjo5W66VQnayBzWXpoTXBPGJ6o2spd?=\n\t=?iso-8859-1?q?TPdt6Vam2YrPkj1ZEFziqmOLK1lataKQCHVvzN1lfRoUfgxG5n4aDH1aRXrI?=\n\t=?iso-8859-1?q?f/zOMdgKEBhoW/xRlffnY7Hm6rbnZgZqVaaxJt6i7eC4iTc8ZdDjDqdE7gNr?=\n\t=?iso-8859-1?q?W+XC6S6xcMwNf6HVliMtTht+taGst+3mJOzInP2MXNBVlogoaDCjVbYCV011?=\n\t=?iso-8859-1?q?50EIdfzyY8PdOScbJC9QLF/APcKjvMVj7CQNVbg5ojKvBcVs7F0K5UTTpZMX?=\n\t=?iso-8859-1?q?0Dt70ty6E75I3zFYteVjwqN/IAfut+BJM+nV99RF+rMUsacURi+SqUQQmnYl?=\n\t=?iso-8859-1?q?9wKgaSHWP/D8+kQk8mj4TTs8OVV2ssL3O+Tj/cMnEkaZThq7sXOoU91b+UbZ?=\n\t=?iso-8859-1?q?f32t20gAW/bt52LT2LRDnQhhULtZC72kPQ7l2F1/Kr50HPJ3CCfAGU464B6e?=\n\t=?iso-8859-1?q?7FPW7gFvhoEmDFynknsRD3a80thNM3A1uyZr3DoRECubmLkfnMjktoOekLsA?=\n\t=?iso-8859-1?q?AyS/ofP4lqOKJnSOYposhteqheyGZQONUIwr+IpgkTIg12/opd5p/zccPzTu?=\n\t=?iso-8859-1?q?/JrA7W9qqZ1JBRdenHo0BN2T2bCpU54MvwpmIOLwR+1DU2lL0OwA3yTCpYT6?=\n\t=?iso-8859-1?q?ePKA1597SX27qjNwoZC/3lLmDLAFyNeU46k8KcXXHIUo827Ov/DK/V1lKCHA?=\n\t=?iso-8859-1?q?Kl2Xe9ShFzQhcd2vExGi6j4tg31vYatPyNJTUd5GDDQbkMSI2T4b95S17kFy?=\n\t=?iso-8859-1?q?X6AqzFJv6hKUX7HqQRDfSakrzLzJ07N1iZ//HdDR1YFd2SDBZrZbDoSzj+FL?=\n\t=?iso-8859-1?q?a5ca7TuaRyAphhrAMPH7qWUjGFtEpcPlFyakbk8PsLf7w5fDJW+pARLKzYJg?=\n\t=?iso-8859-1?q?lFiQ4qvnoqHeaADuSXl7lces8jRHfp/oW3n3kxVAvlhyQ4m3zb9yKUEvNNPX?=\n\t=?iso-8859-1?q?E+YsKL3XsNhsqwbALtM1TmcBJ7PssTsD2z8NO7Ndc4wJa+VzT1a1vlmFOfnr?=\n\t=?iso-8859-1?q?Dh4DgtUfTeV1N1tP+i3HrbWSLMChItsKJGgVr3UHomj/2JdnG7vRNMe138A6?=\n\t=?iso-8859-1?q?ibWZ9PIGYF3jzRcgH/pFLeN7YSoNCbImL4yTdDnwrH2ITvkj50X4voDrIc4v?=\n\t=?iso-8859-1?q?r8X+Fv9uvFI4uGH0iMJaabJKjvJ6bhe/FZCA0vZFpYs1Quuot/O3CkWZHmWh?=\n\t=?iso-8859-1?q?uT9GNYg8fMmSnAJQ09DuxQ4v1fq0j6zdnbhu9HTGfb7pPjkb20+3SGFT/FjO?=\n\t=?iso-8859-1?q?YVm9nUuBmEH+3R20nOQtUOd2FVRdFNqleK2pU6GlgJ5LTbgVFpRhyavvQhQy?=\n\t=?iso-8859-1?q?0GB9A+mZvmQSKOKaELb6UnISUYGARYvRzkjb9JIefPvH4xdW3NYeHKouiBy6?=\n\t=?iso-8859-1?q?LVan4MOPIlW83lwTNSo0nT1Dvn7ykEjsXlNIe1fVllEtJ8xjFlhpVfR+oceF?=\n\t=?iso-8859-1?q?uxiEbx2/WxcfZ2ZEM5++2zNo/dtNx4x45sT+XmietDr6qB4a5aU/6hhTHuFe?=\n\t=?iso-8859-1?q?ayfW68JljeBmAEpkfi9ERuJ/ymBv9eYawaV5+nhmbsSXPrK94RBr12Rwalrv?=\n\t=?iso-8859-1?q?+gY9T1QthCGfqHtXE/mSIIbD+VftRttKf8dAHvU7ONU4eOQ=3D=3D?=",
        "Content-Type": "text/plain; charset=\"iso-8859-1\"",
        "Content-Transfer-Encoding": "quoted-printable",
        "MIME-Version": "1.0",
        "X-Exchange-RoutingPolicyChecked": "\n Wmbn35RS2/18HGNpXQN08dLOR2Wj8ivy9l8UexX7TMpUNJvlL3L1XsmU3ZnVXshLSb6FxAWBooMh739o5UAbyydERpuc/UAwGepj8O4s26oEiuCzMCt0ASnKd2G+fCPTJCN4m5MBKdn6jdimTgjnT4nkpC8IkSbcbLnRvpoDD5xthUStRe9vtXy3dZj0u6XtWrEMxilHRkhlQiGiG9O1+6tGOGa/ZVaJY4xYUrdOzz8KbT+11/P/6Ddy4v744kMA9rhoC4yNMJxG7pLWRCCcf85iYdZkXlHAkhH+k6xutJSQUIs10ePn+IHsUHs+QnNP7jb1i5y1+054+J1MRsgsBg==",
        "X-MS-Exchange-CrossTenant-AuthAs": "Internal",
        "X-MS-Exchange-CrossTenant-AuthSource": "PR3PR06MB6889.eurprd06.prod.outlook.com",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 41331728-9385-4aed-b109-08dea17193fc",
        "X-MS-Exchange-CrossTenant-originalarrivaltime": "23 Apr 2026 19:50:31.9034 (UTC)",
        "X-MS-Exchange-CrossTenant-fromentityheader": "Hosted",
        "X-MS-Exchange-CrossTenant-id": "9a3c2f68-d5b5-4769-b2f8-8d6fe142b164",
        "X-MS-Exchange-CrossTenant-mailboxtype": "HOSTED",
        "X-MS-Exchange-CrossTenant-userprincipalname": "\n yPyWqzGPUMhN9jAhacigc6YyR/tU6x3ZtxWyIq1te4y/aaxodNHSPCL93lN0G2yb0AZBqOVzrN2Takguhuyn/ozuruIPQ/bQqw83bI02a9k=",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "AM9PR06MB8212",
        "X-BeenThere": "libc-alpha@sourceware.org",
        "X-Mailman-Version": "2.1.30",
        "Precedence": "list",
        "List-Id": "Libc-alpha mailing list <libc-alpha.sourceware.org>",
        "List-Unsubscribe": "<https://sourceware.org/mailman/options/libc-alpha>,\n <mailto:libc-alpha-request@sourceware.org?subject=unsubscribe>",
        "List-Archive": "<https://sourceware.org/pipermail/libc-alpha/>",
        "List-Post": "<mailto:libc-alpha@sourceware.org>",
        "List-Help": "<mailto:libc-alpha-request@sourceware.org?subject=help>",
        "List-Subscribe": "<https://sourceware.org/mailman/listinfo/libc-alpha>,\n <mailto:libc-alpha-request@sourceware.org?subject=subscribe>",
        "Errors-To": "libc-alpha-bounces~incoming=patchwork.ozlabs.org@sourceware.org"
    },
    "content": "Here is an updated version of the patch, as per the latest discussion\nregarding the behavior of recursive mutexes.\n\nBesides rewording the commit message and commentary, the only logical change\ncompared to the previous version is replacing\n\n    if (e == EDEADLK\n        && (kind == PTHREAD_MUTEX_ERRORCHECK_NP\n        || kind == PTHREAD_MUTEX_RECURSIVE_NP))\n\nin nptl/pthread_mutex_lock.c with\n\n    if (e == EDEADLK && kind == PTHREAD_MUTEX_ERRORCHECK_NP)\n\nand changing\n\n    return (that->prio_inherit)\n        && (that->type == PTHREAD_MUTEX_ERRORCHECK\n        || that->type == PTHREAD_MUTEX_RECURSIVE);\n\nin nptl/tst-deadlk.c to\n\n    return that->prio_inherit && that->type == PTHREAD_MUTEX_ERRORCHECK;\n\naccordingly.  Below is the complete, updated patch.\n\nKR Moritz\n\n\n\nFrom 934ad1fbf3bd9ac3a3d7b66cf10e8e6d0afa3b48 Mon Sep 17 00:00:00 2001\nFrom: Moritz Klammler <moritz.klammler.ext@siemens.com>\nDate: Thu, 23 Apr 2026 21:31:55 +0200\nSubject: [PATCH 1/1] nptl: Propagate EDEADLK from FUTEX_LOCK_PI for\n errror-checking mutexes\n\nThis patch changes the behavior of pthread_mutex_lock in case of\nnon-trivial deadlock.  The user-space code doesn't detect the case\nwhere two or more threads would mutually deadlock each other, but the\nLinux kernel can.  NPTL's previous behavior, if the syscall returns\nEDEADLK, was to run into an assertion.\n\nWith this patch:\n\n - For error-checking PI mutexes; the error code will be propagated to\n   the caller who might then, at its own discretion and with knowledge\n   about the application-level logic, use it to attempt resolving the\n   situation gracefully or terminate the process after all.  Since\n   error-checking mutexes are specified to possibly return EDEADLK,\n   and the only reason to use them in the first place is for the sake\n   of these additional error checks, any calling code failing to check\n   the return code in this case may legitimately be considered broken\n   already.\n\n - For recursive mutexes; the thread will actually deadlock instead of\n   failing the assertion.  It has been discussed (see below) that this\n   might be more conservative as, unfortunately, lots of existing code\n   might be guilty of not always checking the return code.  So\n   returning at all in this case might cause (arguably questionable)\n   code to continue executing undefined behavior by falsely assuming\n   that the thread successfully acquired a lock, which it didn't.\n\n - For all other mutex types; the behavior is not changed.  They will\n   continue to actually deadlock the calling thread as they did prior\n   to this patch.\n\nA new test is added to assert the expected behavior of all mutex\ntypes.\n\nSince POSIX doesn't seem to mandate any particular behavior for this situation,\nand no existing code should have a dependency of running into an assertion,\nchanging this behavior to what is presumably the most useful one seems to be\njustified.\n\nThe previous (design) discussions can be seen here:\nhttps://sourceware.org/pipermail/libc-alpha/2025-December/173431.html\nhttps://sourceware.org/pipermail/libc-alpha/2026-April/176406.html\n\nSigned-off-by: Moritz Klammler <moritz.klammler.ext@siemens.com>\n---\n nptl/Makefile             |   1 +\n nptl/pthread_mutex_lock.c |  13 +++-\n nptl/tst-deadlk.c         | 144 ++++++++++++++++++++++++++++++++++++++\n 3 files changed, 155 insertions(+), 3 deletions(-)\n create mode 100644 nptl/tst-deadlk.c",
    "diff": "diff --git a/nptl/Makefile b/nptl/Makefile\nindex 08b8ba8a31..eb621d0b40 100644\n--- a/nptl/Makefile\n+++ b/nptl/Makefile\n@@ -282,6 +282,7 @@ tests = \\\n   tst-cleanup5 \\\n   tst-cond26 \\\n   tst-context1 \\\n+  tst-deadlk \\\n   tst-default-attr \\\n   tst-dlsym1 \\\n   tst-exec4 \\\ndiff --git a/nptl/pthread_mutex_lock.c b/nptl/pthread_mutex_lock.c\nindex a697f2b6ca..dfaf46d5fc 100644\n--- a/nptl/pthread_mutex_lock.c\n+++ b/nptl/pthread_mutex_lock.c\n@@ -418,9 +418,16 @@ __pthread_mutex_lock_full (pthread_mutex_t *mutex)\n \t\t\t\t       NULL, private);\n \t    if (e == ESRCH || e == EDEADLK)\n \t      {\n-\t\tassert (e != EDEADLK\n-\t\t\t|| (kind != PTHREAD_MUTEX_ERRORCHECK_NP\n-\t\t\t    && kind != PTHREAD_MUTEX_RECURSIVE_NP));\n+\t\tif (e == EDEADLK && kind == PTHREAD_MUTEX_ERRORCHECK_NP)\n+\t\t  {\n+\t\t    /* FUTEX_LOCK_PI may return EDEADLK due to cross-thread\n+\t\t       deadlock detection, beyond the same-thread recursive\n+\t\t       check above.  Pass this error through for error-checking\n+\t\t       mutexes; otherwise, intentionally deadlock for all other\n+\t\t       mutex types.  */\n+\t\t    return e;\n+\t\t  }\n+\n \t\t/* ESRCH can happen only for non-robust PI mutexes where\n \t\t   the owner of the lock died.  */\n \t\tassert (e != ESRCH || !robust);\ndiff --git a/nptl/tst-deadlk.c b/nptl/tst-deadlk.c\nnew file mode 100644\nindex 0000000000..bf787826ae\n--- /dev/null\n+++ b/nptl/tst-deadlk.c\n@@ -0,0 +1,144 @@\n+/* Test for pthread_mutex_lock deadlock behavior.\n+   Copyright (C) 2026 Free Software Foundation, Inc.\n+   This file is part of the GNU C Library.\n+\n+   The GNU C Library is free software; you can redistribute it and/or\n+   modify it under the terms of the GNU Lesser General Public\n+   License as published by the Free Software Foundation; either\n+   version 2.1 of the License, or (at your option) any later version.\n+\n+   The GNU C Library is distributed in the hope that it will be useful,\n+   but WITHOUT ANY WARRANTY; without even the implied warranty of\n+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n+   Lesser General Public License for more details.\n+\n+   You should have received a copy of the GNU Lesser General Public\n+   License along with the GNU C Library; if not, see\n+   <https://www.gnu.org/licenses/>.  */\n+\n+#include <array_length.h>\n+#include <errno.h>\n+#include <stdint.h>\n+#include <stdio.h>\n+\n+#include <support/capture_subprocess.h>\n+#include <support/check.h>\n+#include <support/support.h>\n+#include <support/test-driver.h>\n+#include <support/xthread.h>\n+\n+#define ASSUME_DEADLOCK_AFTER_SECONDS 3\n+\n+struct which_mutex\n+{\n+  int type;\n+  bool prio_inherit;\n+  bool robust;\n+};\n+\n+struct task_context\n+{\n+  pthread_mutex_t *first, *second;\n+  pthread_barrier_t *barrier;\n+};\n+\n+static bool\n+should_detect_deadlock (const struct which_mutex *const that)\n+{\n+  return that->prio_inherit && that->type == PTHREAD_MUTEX_ERRORCHECK;\n+}\n+\n+static void *\n+thread_function (void *const arg)\n+{\n+  const struct task_context *ctx = arg;\n+  intptr_t ret = 0;\n+  xpthread_mutex_lock (ctx->first);\n+  xpthread_barrier_wait (ctx->barrier);\n+  ret = pthread_mutex_lock (ctx->second);\n+  xpthread_mutex_unlock (ctx->first);\n+  if (ret == 0)\n+    xpthread_mutex_unlock (ctx->second);\n+  return (void *) ret;\n+}\n+\n+static void\n+prepare_mutex (pthread_mutex_t *const mutex,\n+               const struct which_mutex *const that)\n+{\n+  pthread_mutexattr_t attr;\n+  xpthread_mutexattr_init (&attr);\n+  xpthread_mutexattr_settype (&attr, that->type);\n+  if (that->robust)\n+    xpthread_mutexattr_setrobust (&attr, PTHREAD_MUTEX_ROBUST);\n+  if (that->prio_inherit)\n+    xpthread_mutexattr_setprotocol (&attr, PTHREAD_PRIO_INHERIT);\n+  xpthread_mutex_init (mutex, &attr);\n+  xpthread_mutexattr_destroy (&attr);\n+}\n+\n+static void\n+do_test_single (void *const ctx)\n+{\n+  pthread_mutex_t m1, m2;\n+  pthread_barrier_t barrier;\n+  const struct which_mutex *const that = ctx;\n+  const bool graceful = should_detect_deadlock (that);\n+  struct task_context ctx1\n+      = { .first = &m1, .second = &m2, .barrier = &barrier };\n+  struct task_context ctx2\n+      = { .first = &m2, .second = &m1, .barrier = &barrier };\n+  xpthread_barrier_init (&barrier, NULL, 2);\n+  prepare_mutex (&m1, that);\n+  prepare_mutex (&m2, that);\n+  const pthread_t t1 = xpthread_create (NULL, thread_function, &ctx1);\n+  const pthread_t t2 = xpthread_create (NULL, thread_function, &ctx2);\n+  if (!graceful)\n+    delayed_exit (ASSUME_DEADLOCK_AFTER_SECONDS);\n+  const int ret1 = (intptr_t) xpthread_join (t1);\n+  const int ret2 = (intptr_t) xpthread_join (t2);\n+  xpthread_mutex_destroy (&m1);\n+  xpthread_mutex_destroy (&m2);\n+  xpthread_barrier_destroy (&barrier);\n+  TEST_VERIFY (graceful);\n+  TEST_VERIFY (ret1 == 0 || ret1 == EDEADLK);\n+  TEST_VERIFY (ret2 == 0 || ret2 == EDEADLK);\n+  TEST_VERIFY (ret1 == EDEADLK || ret2 == EDEADLK);\n+}\n+\n+static int\n+do_test (void)\n+{\n+  const int mutex_types[] = {\n+    PTHREAD_MUTEX_TIMED_NP,\n+    PTHREAD_MUTEX_RECURSIVE_NP,\n+    PTHREAD_MUTEX_ERRORCHECK_NP,\n+    PTHREAD_MUTEX_ADAPTIVE_NP,\n+  };\n+  for (size_t i = 0; i < array_length (mutex_types); ++i)\n+    {\n+      for (int pi = 0; pi < 2; ++pi)\n+        {\n+          for (int rb = 0; rb < 2; ++rb)\n+            {\n+              struct which_mutex that = {\n+                .type = mutex_types[i],\n+                .prio_inherit = pi,\n+                .robust = rb,\n+              };\n+              const char *const description\n+                  = xasprintf (\"type = %d, prio_inherit = %d, robust = %d\",\n+                               that.type, that.robust, that.prio_inherit);\n+              struct support_capture_subprocess capture\n+                  = support_capture_subprocess (do_test_single, &that);\n+              support_capture_subprocess_check (&capture, description, 0,\n+                                                sc_allow_none);\n+              support_capture_subprocess_free (&capture);\n+            }\n+        }\n+    }\n+  return 0;\n+}\n+\n+#define TIMEOUT 60\n+#include <support/test-driver.c>\n",
    "prefixes": []
}