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.96) (envelope-from ) id 1w91Xj-0017mA-2I for pgsql-hackers@arkaria.postgresql.org; Sat, 04 Apr 2026 14:00:07 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w91Xi-00GcVj-0X for pgsql-hackers@arkaria.postgresql.org; Sat, 04 Apr 2026 14:00:06 +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.96) (envelope-from ) id 1w91Xh-00GcVb-2i for pgsql-hackers@lists.postgresql.org; Sat, 04 Apr 2026 14:00:06 +0000 Received: from mail-wm1-x32b.google.com ([2a00:1450:4864:20::32b]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w91Xf-00000000ZDP-2xAQ for pgsql-hackers@lists.postgresql.org; Sat, 04 Apr 2026 14:00:05 +0000 Received: by mail-wm1-x32b.google.com with SMTP id 5b1f17b1804b1-48334ee0aeaso24147495e9.1 for ; Sat, 04 Apr 2026 07:00:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1775311203; x=1775916003; darn=lists.postgresql.org; h=in-reply-to:from:content-language:references:cc:to:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=8nYG6ClKJalJIjamaVyOaNZINKb/HF4SmD810of7b/E=; b=Qm0kuxNvvDe/KDZiu9RECOWImNEIeR2D1PUYMEzvmT+Nq9/xRsVGgDnxD+LredYy/c +jnpR4O9gdRWq3f995jG5QaVvgw+yqYsKemOMaxTS7TCTTTqXG8Ad5nmp1hov8BAOkje BmYa17E1/zBLk3rLLmdgkTDlmI2qGbHr+pVDhcqxZYPeVTvsyu+k/HYJMd/216Z17iaM kYs0dZtwBaOGVaQaHh0BDLOgHvHe7sX4oZS7eth0SoPygDRRy6ENE6hN4yJyXZ5TqrwH TBnJh8ayb8xtvSfpUHImon9hkEyTmfj+9sEqLafqsP2FrEsOkB7GtVeuKaCaMnA43eqL yOzA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775311203; x=1775916003; h=in-reply-to:from:content-language:references:cc:to:subject :user-agent:mime-version:date:message-id:x-gm-gg:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=8nYG6ClKJalJIjamaVyOaNZINKb/HF4SmD810of7b/E=; b=sAjFRlwSiId0X+dd6osHhlMMkCvGAtVNXhIDTbrd/iMBU/nSCobaS3aCyOVEsSwVBM DJOAoXy4CqcadehteJJM4HZ4o9KV5IxaF4/AziZDyoeXWcWsBeDJP0Twis/I0m4uFzrU vpQ9uwWOiE9qKNk1iJiRRD7iupo1y8DEw7kMkWP/J2Qhp2Wrjg9Nkf9Tq4iCFG2k5Pij cVYiJUYuMcs6oG1i1P0Nhb1WSGYxaU3nMg0n7OY4biaGoqdXWQshL/pGZWqK7NSIdvGK M7KB/VIeyrzM6uIq0TgqLpoISPDsmnCBm82QE/hZwtskNsXo8wmbVAEX3iiSbgB4pwY2 n05w== X-Gm-Message-State: AOJu0YzQe8Z47zfhf1KWiIUnnvsa3bRIPhLgUO90DRv3jT+MGB6FT8wF YgCHqXpEi1m92kc4v4mXoyD7ZVWBAK2Vsv/52a1Jgg3tmsBMSuUZ5RLe X-Gm-Gg: AeBDietVMo9ZuAgZYbu2BzK1XbC2dGAWB+tH5j8QvNTAln5caDU5HH/cBKMaeG/pTre CueMaE+OYLQ0LxKHGTCK1UZakwpI/79JPwZYtU/9dn2sRgGMbw+BrCz7gCeQUDUKcCnfYw4LkUC OS8jV8ZyK8Xn1zZ9T8kgtrigq4QIjzcnj7Wrk9o0lmnts+ZrY0VqQ53wiDFBhAu2w4eRUQ6s18u bSt2iwI9bJ9UxHCRZZbj4hD+4Qxv3i8fu+tHfAEumN1nSS0kOefluWlw9DqA0h6ioVkf7jpQtdA gq5FA297ia33delZtaLwynALL31FOOzYVzhWVnYqf6s1Fqx7OL+CRj+6hhja2ApglzlDO0Acwu5 7ljAfa4hSrrgGbJ2FDVBbTj/OrEL5+F6EXbI4h18P9sKE+JJRIRGOINl68DNgLY1040y5ZNkOcM ghMAeEA7KVYLSNECga1TUUQ3ap X-Received: by 2002:a05:600c:638e:b0:487:59c:2bb8 with SMTP id 5b1f17b1804b1-488997dec25mr94888855e9.27.1775311202479; Sat, 04 Apr 2026 07:00:02 -0700 (PDT) Received: from [192.168.0.50] ([89.149.68.143]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4888a567bfasm454165495e9.0.2026.04.04.07.00.01 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 04 Apr 2026 07:00:01 -0700 (PDT) Content-Type: multipart/alternative; boundary="------------Wfunn08FL2A2Exqb0n2eU49k" Message-ID: <6f435023-8ab6-47c2-ba07-035d0c4212f9@gmail.com> Date: Sat, 4 Apr 2026 17:00:00 +0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: TupleDescAttr bounds checks To: Robert Haas , Tom Lane Cc: PostgreSQL Hackers References: <1628959.1774023745@sss.pgh.pa.us> <1631625.1774025167@sss.pgh.pa.us> <3429884.1774238081@sss.pgh.pa.us> Content-Language: en-US From: Alexander Lakhin In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------Wfunn08FL2A2Exqb0n2eU49k Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Hello Robert, 24.03.2026 12:45, Robert Haas wrote: > On Sun, Mar 22, 2026 at 11:54 PM Tom Lane wrote: >> Anyway, you should get this fix pushed. > Done, and I'll plan to commit the other patches later today. I've found a way to trigger the Assert added in c98ad086a: CREATE TABLE t(i int); COPY t FROM stdin WHERE tableoid > 0; server closed the connection unexpectedly (gdb) bt #0  __pthread_kill_implementation (no_tid=0, signo=6, threadid=) at ./nptl/pthread_kill.c:44 #1  __pthread_kill_internal (signo=6, threadid=) at ./nptl/pthread_kill.c:78 #2  __GI___pthread_kill (threadid=, signo=signo@entry=6) at ./nptl/pthread_kill.c:89 #3  0x00007066d0e4527e in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26 #4  0x00007066d0e288ff in __GI_abort () at ./stdlib/abort.c:79 #5  0x0000609680cc7fcf in ExceptionalCondition (     conditionName=conditionName@entry=0x609680d2c104 "i >= 0 && i < tupdesc->natts",     fileName=fileName@entry=0x609680d84568 "../../../src/include/access/tupdesc.h", lineNumber=lineNumber@entry=182)     at assert.c:65 #6  0x00006096808c8f68 in TupleDescAttr (tupdesc=, i=)     at ../../../src/include/access/tupdesc.h:182 #7  TupleDescAttr (i=, tupdesc=) at ../../../src/include/access/tupdesc.h:178 #8  DoCopy (pstate=0x6096a749dc90, stmt=0x6096a74ca120, stmt_location=0, stmt_len=40, processed=0x7ffd3b09b450) at copy.c:180 #9  0x0000609680b6b82a in standard_ProcessUtility (pstmt=0x6096a74ca1f0,     queryString=0x6096a74c9520 "COPY t FROM stdin WHERE tableoid > 0;", readOnlyTree=,     context=PROCESS_UTILITY_TOPLEVEL, params=0x0, queryEnv=0x0, dest=0x6096a74ca5b0, qc=0x7ffd3b09b6f0) at utility.c:743 #10 0x0000609680b6990c in PortalRunUtility (portal=portal@entry=0x6096a756a070, pstmt=pstmt@entry=0x6096a74ca1f0,     isTopLevel=isTopLevel@entry=true, setHoldSnapshot=setHoldSnapshot@entry=false, dest=dest@entry=0x6096a74ca5b0,     qc=qc@entry=0x7ffd3b09b6f0) at pquery.c:1148 ... Best regards, Alexander --------------Wfunn08FL2A2Exqb0n2eU49k Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 8bit
Hello Robert,

24.03.2026 12:45, Robert Haas wrote:
On Sun, Mar 22, 2026 at 11:54 PM Tom Lane <tgl@sss.pgh.pa.us> wrote:
 Anyway, you should get this fix pushed.
Done, and I'll plan to commit the other patches later today.

I've found a way to trigger the Assert added in c98ad086a:
CREATE TABLE t(i int);
COPY t FROM stdin WHERE tableoid > 0;
server closed the connection unexpectedly

(gdb) bt
#0  __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:44
#1  __pthread_kill_internal (signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:78
#2  __GI___pthread_kill (threadid=<optimized out>, signo=signo@entry=6) at ./nptl/pthread_kill.c:89
#3  0x00007066d0e4527e in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#4  0x00007066d0e288ff in __GI_abort () at ./stdlib/abort.c:79
#5  0x0000609680cc7fcf in ExceptionalCondition (
    conditionName=conditionName@entry=0x609680d2c104 "i >= 0 && i < tupdesc->natts",
    fileName=fileName@entry=0x609680d84568 "../../../src/include/access/tupdesc.h", lineNumber=lineNumber@entry=182)
    at assert.c:65
#6  0x00006096808c8f68 in TupleDescAttr (tupdesc=<optimized out>, i=<optimized out>)
    at ../../../src/include/access/tupdesc.h:182
#7  TupleDescAttr (i=<optimized out>, tupdesc=<optimized out>) at ../../../src/include/access/tupdesc.h:178
#8  DoCopy (pstate=0x6096a749dc90, stmt=0x6096a74ca120, stmt_location=0, stmt_len=40, processed=0x7ffd3b09b450) at copy.c:180
#9  0x0000609680b6b82a in standard_ProcessUtility (pstmt=0x6096a74ca1f0,
    queryString=0x6096a74c9520 "COPY t FROM stdin WHERE tableoid > 0;", readOnlyTree=<optimized out>,
    context=PROCESS_UTILITY_TOPLEVEL, params=0x0, queryEnv=0x0, dest=0x6096a74ca5b0, qc=0x7ffd3b09b6f0) at utility.c:743
#10 0x0000609680b6990c in PortalRunUtility (portal=portal@entry=0x6096a756a070, pstmt=pstmt@entry=0x6096a74ca1f0,
    isTopLevel=isTopLevel@entry=true, setHoldSnapshot=setHoldSnapshot@entry=false, dest=dest@entry=0x6096a74ca5b0,
    qc=qc@entry=0x7ffd3b09b6f0) at pquery.c:1148
...

Best regards,
Alexander
--------------Wfunn08FL2A2Exqb0n2eU49k--