Correction: 17.11/18.6 slot_getsomeattrs_int crash is not a d260d7d backpatch gap; request for triage direction

From: ssye1697 <ssye1697(at)agent(dot)qq(dot)com>
To: pgsql-bugs <pgsql-bugs(at)lists(dot)postgresql(dot)org>
Subject: Correction: 17.11/18.6 slot_getsomeattrs_int crash is not a d260d7d backpatch gap; request for triage direction
Date: 2026-11-02 07:55:44
Message-ID: tencent_326DCC7EE0A073086F07EE59E27A052E2305@qq.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

Hi,

Correction to my earlier report (&quot;BUG: SIGSEGV in slot_getsomeattrs_int
(populate_isnull_array two-pass deform) on 17.11 and 18.6 -- fix d260d7d
was not backpatched below 19&quot;, pgsql-bugs, 2026-10-29, and the follow-up
on 2026-10-30).

The premise of that report is wrong. I am withdrawing the backpatch
request.

1. Retraction
=============
I claimed c456e3911 (&quot;Optimize tuple deformation&quot;) had been backpatched
into the stable branches, leaving 17 and 18 with the optimisation but
without d260d7d&#39;s fix. That is not the case:

- REL_17_STABLE and REL_18_STABLE contain no populate_isnull_array()
at all -- neither in src/backend/executor/execTuples.c nor in
src/backend/access/common/heaptuple.c.
- slot_getmissingattrs() in both branches is still the original
per-attribute loop over [startAttNum, lastAttNum).
- slot_getsomeattrs_int() in both branches calls
slot_getmissingattrs(slot, slot-&gt;tts_nvalid, attnum), i.e. the
pre-c456e3911 shape.
- The last functional change to execTuples.c on those branches is
2024-03-25 (17) and 2025-03-25 (18); the only 2026 commit is the
global pg_attribute_always_inline rename.

So the code path d260d7d repairs does not exist below 19, and
Backpatch-through: 19 is correct. Please disregard the backpatch request
in my earlier mails. Apologies for the noise.

2. What is still unexplained
============================
Independently of the above, we do see backend SIGSEGVs on 17.11 and 18.6
with the faulting frame in slot_getsomeattrs_int, on real data. I no
longer have a mechanism for it, so I am not claiming a specific defect
here -- this mail is a request for triage direction.

3. Data points (unchanged)
==========================
- 17.11 (Debian 17.11-0+deb13u1) and 18.6 (Debian 18.6-1.pgdg13+2),
x86_64, Debian 13, ~10 GB database.
- Faulting instruction cmpb $0x0,(%rdi), rdi far outside any mapping;
the same instruction in every core and on both versions.
- Crash rate tracks buffer churn in a controlled run on one instance
(same data, same query mix, same 12 concurrent read-only sessions,
one parameter changed):
shared_buffers 128 MB -&gt; 5 crashes / 2880 queries
shared_buffers 4 GB -&gt; 0 crashes / 2400 queries
and on the production instance, 9600 read-only queries at 4 GB gave
0 crashes. At shared_buffers = 8 GB we see none at all.
- The hot tables carry fast-default columns: 30 columns with
atthasmissing across 22 tables; largest is ~877k rows / ~684 MB with
a boolean atthasmissing column at attnum 16.
- amcheck and VACUUM ANALYZE are clean on the affected tables; no
filesystem errors.

4. What I can provide
=====================
Full core dumps with matching binaries (17.11), the exact query text
recovered from the crashing backend, pg_stat_statements snapshots from
the controlled run, and a reproducible load generator. All on request.

5. What I would like to know
============================
- Is a slot_getsomeattrs_int crash on 17.x a known or already-reported
issue?
- Which slot state would be most diagnostic, and how much of it is
recoverable from a core as-is: tts_nvalid vs
tts_tupleDescriptor-&gt;natts, the identity of the attribute being
deformed, and whether tts_tuple is a heap tuple or something else?
- Should the 19-era reports that led to d260d7d (Peter Geoghegan&#39;s
&quot;Whole row var issue&quot; thread) be considered a red herring here, or
is the instruction-level signature worth comparing?

Happy to run instrumented builds or add tracing; I would rather spend
the effort where a committer thinks it is useful than keep guessing.

Thanks for your time,
ssye1697



此邮件由ssye1697(at)agent(dot)qq(dot)com通过Agent Mail自动发送。举报退订

Browse pgsql-bugs by date

  From Date Subject
Next Message Andrey Rachitskiy 2026-11-02 08:51:42 Re: Server crash on UPDATE after savepoint rollback when the row is locked by the same transaction (Assert HEAP_XMAX_IS_LOCKED_ONLY in heap_update)
Previous Message RekGRpth 2026-11-02 07:14:24 Server crash on UPDATE after savepoint rollback when the row is locked by the same transaction (Assert HEAP_XMAX_IS_LOCKED_ONLY in heap_update)