Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uj9JH-003Xay-L1 for pgsql-bugs@arkaria.postgresql.org; Tue, 05 Aug 2025 04:30:00 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1uj9JG-0074qp-Iz for pgsql-bugs@arkaria.postgresql.org; Tue, 05 Aug 2025 04:29:58 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1uj9JG-0074qh-9a for pgsql-bugs@lists.postgresql.org; Tue, 05 Aug 2025 04:29:58 +0000 Received: from mail-oa1-x35.google.com ([2001:4860:4864:20::35]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1uj9JD-000oVW-2n for pgsql-bugs@lists.postgresql.org; Tue, 05 Aug 2025 04:29:57 +0000 Received: by mail-oa1-x35.google.com with SMTP id 586e51a60fabf-30b8ba5dfffso217803fac.2 for ; Mon, 04 Aug 2025 21:29:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1754368194; x=1754972994; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=/xH9Si+iJLDZ8XIsP2JWT5xSmX+m+c/U9yl00CydQHQ=; b=G2UrLb4GOEi32O1fxuiv5n938tZDilNLqHcoATwmlvzp9/Mjn1DBUs9xbAcq9cILOK uvZSvGga04yCyVMY6I/gwjAh87ghGffdS7xTls9qQm7t0w1pqJQ039KP/WZK9SQK/jPy lkjKHHCcZt++E8rDdin1YNmq8ks+9cyK1IigZjKfAxy5kZw2lBNFfmQqRfZ/q+HUOZvl m1LVhp+aWeP/rtxQATXcw/x2i+0EybVecHeTmClRoz/L7jPjG87XTBjN2o93100CDsAw XJ4pGJFdMoWEdpXpWIPr/cUF1rikS6GPwxdk3lRATyZ3lwvPkcwMYh8ogTZTsxiwJ/6t FYnw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1754368194; x=1754972994; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=/xH9Si+iJLDZ8XIsP2JWT5xSmX+m+c/U9yl00CydQHQ=; b=iD1B3lytuwbCb+bs84+JSCpuKhnyuuYitkcoLVCbrBQlzj/5SGwdHnKR4fzM7ZmEOg o+Vwyr8QYd1i54JkfrT4+LAKR2TdyXFGlMOWHMkssDNdhk1ywMHEY5n6MvslXPl4HZFK hsnjAEEURbAkFin/VO+SVCBtn1/ek1/48j3xwEbU4JgKdCPXyz5qc8iw10K0R60jOQ2K NIKwe5Cy1nYSVWYdHgHR8eODxCZGTgUVaIlcmFMzCObn/HdCVwJdOc9dnt6FQUNMup5U fSvb2wiqRJRcwNRRx+Tpb7HmJng6Wvkg9nwpfe11EKLc0RKZMPnoSCNKoyzR5PPTHI15 QfLw== X-Forwarded-Encrypted: i=1; AJvYcCWmLjGcnMJlV0fazH7jsmHD4y8tprAFAMFX0RLl7MI6ZykpnNhN6q6xydLcI0T9NTdsnJ9h45GHQd3L@lists.postgresql.org X-Gm-Message-State: AOJu0YwgmVAK00YkmYda4W8QO8aFhT4/EmNo1XOPfNioS2kfBVDvbRoK Ro8+9kUWZa16acjIYVvLDxQt4+ZtO3gPAkLXDNTIGXWCTPPMstvlpKYLtt6xZsQVzbY8ugOD4TF wvUbJXHk7QKl+zmustshvVFMoDBLB/vk= X-Gm-Gg: ASbGnctmY1BzNP/OhBkvauXXHFD1DAt5bqVQnOIXEoOYhTRcCKCMWFlwqAFrql6ax+6 2L4MYdHoUep2Vqgs6BccIesZ3q78daMH3iCMT54CxETz4zkLAas5GPr2OAhBa3stJ6VKKr7Eii3 0xa2yrw2EgmdQ6+pjYlvvmF0La7efbEsNXBk6O5xentZ1l9NIFFr1Ti4soFEpOBMcBuSj8Diirl JTOeu2My8AOIbUOTdQEjAq1wQCDekO7p1ldnXwoFQ== X-Google-Smtp-Source: AGHT+IFn+5mJwSD2pPT66uEzTi/Afxck2b2Vbak8bcJBsq/cibw/RGiKz1WPh1DvHe6JTBOINReuaphoQE2TFOkAPlQ= X-Received: by 2002:a05:687c:2c0e:b0:30b:81f6:6bc4 with SMTP id 586e51a60fabf-30b81f682aamr2039097fac.6.1754368194247; Mon, 04 Aug 2025 21:29:54 -0700 (PDT) MIME-Version: 1.0 References: <19006-80fcaaf69000377e@postgresql.org> In-Reply-To: From: Thomas Munro Date: Tue, 5 Aug 2025 16:29:17 +1200 X-Gm-Features: Ac12FXwuezXJFgHLIhY_MRC8sUlQXqdz-volWywIx5T0ZwWlvFamDs2Ut8vLoo4 Message-ID: Subject: Re: BUG #19006: Assert(BufferIsPinned) in BufferGetBlockNumber() is triggered for forwarded buffer To: Xuneng Zhou Cc: exclusion@gmail.com, pgsql-bugs@lists.postgresql.org, Michael Paquier Content-Type: multipart/mixed; boundary="000000000000061162063b96ad82" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000061162063b96ad82 Content-Type: text/plain; charset="UTF-8" Here's my proposed fix. Great reproducer, Alexander, thanks! --000000000000061162063b96ad82 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Fix-bug-in-read_stream.c-s-split-IO-handling.patch" Content-Disposition: attachment; filename="0001-Fix-bug-in-read_stream.c-s-split-IO-handling.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mdy1i47v0 RnJvbSAzYjAzM2ZhNzllMzk2M2NiZGViMjMwMDUwODE2NGQwMGFmNjFmMTI0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUaG9tYXMgTXVucm8gPHRob21hcy5tdW5yb0BnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgNSBBdWcgMjAyNSAxNDozNTowOSArMTIwMApTdWJqZWN0OiBbUEFUQ0hdIEZp eCBidWcgaW4gcmVhZF9zdHJlYW0uYydzIHNwbGl0IElPIGhhbmRsaW5nLgoKSWYgYSBjaXJjdWxh ciBxdWV1ZSB3cmFwYXJvdW5kLCBhIG11bHRpLWJsb2NrIElPIHNwbGl0IGFuZCBhIHRyYW5zaXRp b24KdG8gdGhlIGZhc3QgcGF0aCBoYXBwZW5lZCBpbiBhIGNlcnRhaW4gc2VxdWVuY2UsIGEgYnVm ZmVyIGZvcndhcmRlZApmcm9tIG9uZSBTdGFydFJlYWRCdWZmZXJzKCkgY2FsbCB0byBuZXh0IHdv dWxkIG5vdCBiZSBjbGVhcmVkIG91dC4KY2xlYXJlZCBvdXQuICBUaGF0IGNvdWxkIGNvbmZ1c2Ug YSBsYXRlciBxdWV1ZS13cmFwcGluZwpTdGFydFJlYWRCdWZmZXJzKCkgY2FsbCBieSBwYXNzaW5n IGl0IGEgcmFuZG9tIHVucGlubmVkIGJ1ZmZlci4KCkZpeCwgYW5kIGFkZCBzb21lIHRpZ2h0ZXIg YW5kIGVhcmxpZXIgYXNzZXJ0aW9ucyBhYm91dCB0aGUgbGF5b3V0IGFuZAppZGVudGl0eSBvZiBi dWZmZXJzIGZvcndhcmRlZCBhY3Jvc3MgSU8gc3BsaXRzLCBhbmQgdGhlIGZvbGxvd2luZwplbnRy aWVzIHRoYXQgc2hvdWxkIGhhdmUgYmVlbiBjbGVhcmVkIGJlZm9yZSByZXVzZS4KCkRlZmVjdCBp biBjb21taXQgZWQwYjg3Y2EuCgpCdWc6IDE5MDA2CkJhY2twYXRjaC10aHJvdWdoOiAxOApSZXBv cnRlZC1ieTogQWxleGFuZGVyIExha2hpbiA8ZXhjbHVzaW9uQGdtYWlsLmNvbT4KRGlzY3Vzc2lv bjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS8xOTAwNi04MGZjYWFmNjkwMDAzNzdlJTQwcG9zdGdyZXNx bC5vcmcKLS0tCiBzcmMvYmFja2VuZC9zdG9yYWdlL2Fpby9yZWFkX3N0cmVhbS5jIHwgMzIgKysr KysrKysrKysrKysrKysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgMzIgaW5zZXJ0aW9ucygr KQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvYWlvL3JlYWRfc3RyZWFtLmMgYi9z cmMvYmFja2VuZC9zdG9yYWdlL2Fpby9yZWFkX3N0cmVhbS5jCmluZGV4IDBlN2Y1NTU3ZjVjLi5h OWNmZTMzNDdjOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9haW8vcmVhZF9zdHJl YW0uYworKysgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2Fpby9yZWFkX3N0cmVhbS5jCkBAIC0yNTMs NiArMjUzLDI1IEBAIHJlYWRfc3RyZWFtX3N0YXJ0X3BlbmRpbmdfcmVhZChSZWFkU3RyZWFtICpz dHJlYW0pCiAJZWxzZQogCQlBc3NlcnQoc3RyZWFtLT5uZXh0X2J1ZmZlcl9pbmRleCA9PSBzdHJl YW0tPm9sZGVzdF9idWZmZXJfaW5kZXgpOwogCisJLyoKKwkgKiBQaW5uZWQgYnVmZmVycyBmb3J3 YXJkZWQgYnkgYSBwcmVjZWRpbmcgU3RhcnRSZWFkQnVmZmVycygpIGNhbGwgdGhhdAorCSAqIGhh ZCB0byBzcGxpdCB0aGUgb3BlcmF0aW9uIHNob3VsZCBtYXRjaCB0aGUgbGVhZGluZyBibG9ja3Mg b2YgdGhpcworCSAqIGZvbGxvd2luZyBTdGFydFJlYWRCdWZmZXJzKCkgY2FsbC4KKwkgKi8KKwlB c3NlcnQoc3RyZWFtLT5mb3J3YXJkZWRfYnVmZmVycyA8PSBzdHJlYW0tPnBlbmRpbmdfcmVhZF9u YmxvY2tzKTsKKwlmb3IgKGludCBpID0gMDsgaSA8IHN0cmVhbS0+Zm9yd2FyZGVkX2J1ZmZlcnM7 ICsraSkKKwkJQXNzZXJ0KEJ1ZmZlckdldEJsb2NrTnVtYmVyKHN0cmVhbS0+YnVmZmVyc1tzdHJl YW0tPm5leHRfYnVmZmVyX2luZGV4ICsgaV0pID09CisJCQkgICBzdHJlYW0tPnBlbmRpbmdfcmVh ZF9ibG9ja251bSArIGkpOworCisJLyoKKwkgKiBDaGVjayB0aGF0IHdlJ3ZlIGNsZWFyZWQgdGhl IHF1ZXVlL292ZXJmbG93IGVudHJpZXMgY29ycmVzcG9uZGluZyB0bworCSAqIHRoZSByZXN0IG9m IHRoZSBibG9ja3MgY292ZXJlZCBieSB0aGlzIHJlYWQsIHVubGVzcyBpdCdzIHRoZSBmaXJzdCBn bworCSAqIGFyb3VuZCBhbmQgd2UgaGF2ZW4ndCBldmVuIGluaXRpYWxpemVkIHRoZW0geWV0Lgor CSAqLworCWZvciAoaW50IGkgPSBzdHJlYW0tPmZvcndhcmRlZF9idWZmZXJzOyBpIDwgc3RyZWFt LT5wZW5kaW5nX3JlYWRfbmJsb2NrczsgKytpKQorCQlBc3NlcnQoc3RyZWFtLT5uZXh0X2J1ZmZl cl9pbmRleCArIGkgPj0gc3RyZWFtLT5pbml0aWFsaXplZF9idWZmZXJzIHx8CisJCQkgICBzdHJl YW0tPmJ1ZmZlcnNbc3RyZWFtLT5uZXh0X2J1ZmZlcl9pbmRleCArIGldID09IEludmFsaWRCdWZm ZXIpOworCiAJLyogRG8gd2UgbmVlZCB0byBpc3N1ZSByZWFkLWFoZWFkIGFkdmljZT8gKi8KIAlm bGFncyA9IHN0cmVhbS0+cmVhZF9idWZmZXJzX2ZsYWdzOwogCWlmIChzdHJlYW0tPmFkdmljZV9l bmFibGVkKQpAQCAtOTc5LDYgKzk5OCwxOSBAQCByZWFkX3N0cmVhbV9uZXh0X2J1ZmZlcihSZWFk U3RyZWFtICpzdHJlYW0sIHZvaWQgKipwZXJfYnVmZmVyX2RhdGEpCiAJCXN0cmVhbS0+cGVuZGlu Z19yZWFkX25ibG9ja3MgPT0gMCAmJgogCQlzdHJlYW0tPnBlcl9idWZmZXJfZGF0YV9zaXplID09 IDApCiAJeworCQkvKgorCQkgKiBUaGUgZmFzdCBwYXRoIHNwaW5zIG9uIG9uZSBidWZmZXIgZW50 cnkgcmVwZWF0ZWRseSBpbnN0ZWFkIG9mCisJCSAqIHJvdGF0aW5nIHRocm91Z2ggdGhlIHdob2xl IHF1ZXVlIGFuZCBjbGVhcmluZyB0aGUgZW50cmllcyBiZWhpbmQKKwkJICogaXQuICBJZiB0aGUg YnVmZmVyIGl0IHN0YXJ0cyB3aXRoIGhhcHBlbmVkIHRvIGJlIGZvcndhcmRlZCBiZXR3ZWVuCisJ CSAqIFN0YXJ0UmVhZEJ1ZmZlcnMoKSBjYWxscyBhbmQgYWxzbyB3cmFwcGVkIGFyb3VuZCB0aGUg Y2lyY3VsYXIgcXVldWUKKwkJICogcGFydHdheSB0aHJvdWdoLCB0aGVuIGEgY29weSBhbHNvIGV4 aXN0cyBpbiB0aGUgb3ZlcmZsb3cgem9uZSwgYW5kCisJCSAqIGl0IHdvbid0IGNsZWFyIGl0IG91 dCBhcyB0aGUgcmVndWxhciBwYXRoIHdvdWxkLiAgRG8gdGhhdCBub3csIHNvCisJCSAqIGl0IGRv ZXNuJ3QgbmVlZCBjb2RlIGZvciB0aGF0LgorCQkgKi8KKwkJaWYgKHN0cmVhbS0+b2xkZXN0X2J1 ZmZlcl9pbmRleCA8IHN0cmVhbS0+aW9fY29tYmluZV9saW1pdCAtIDEpCisJCQlzdHJlYW0tPmJ1 ZmZlcnNbc3RyZWFtLT5xdWV1ZV9zaXplICsgc3RyZWFtLT5vbGRlc3RfYnVmZmVyX2luZGV4XSA9 CisJCQkJSW52YWxpZEJ1ZmZlcjsKKwogCQlzdHJlYW0tPmZhc3RfcGF0aCA9IHRydWU7CiAJfQog I2VuZGlmCi0tIAoyLjQ3LjIKCg== --000000000000061162063b96ad82--