From: | Heikki Linnakangas <hlinnaka(at)iki(dot)fi> |
---|---|
To: | Alexander Lakhin <exclusion(at)gmail(dot)com>, Thomas Munro <thomas(dot)munro(at)gmail(dot)com>, Robert Haas <robertmhaas(at)gmail(dot)com> |
Cc: | Michael Paquier <michael(at)paquier(dot)xyz>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Laurenz Albe <laurenz(dot)albe(at)cybertec(dot)at>, rootcause000(at)gmail(dot)com, pgsql-bugs(at)lists(dot)postgresql(dot)org |
Subject: | Re: BUG #18146: Rows reappearing in Tables after Auto-Vacuum Failure in PostgreSQL on Windows |
Date: | 2024-06-26 20:59:27 |
Message-ID: | 00477c52-3a35-4621-b80b-58a5a48b113f@iki.fi |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
On 26/06/2024 23:58, Heikki Linnakangas wrote:
> On 14/05/2024 16:00, Alexander Lakhin wrote:
>> 23.04.2024 10:48, Thomas Munro wrote:
>>> Here is a new attempt to see what it might take to put
>>> RelationTruncate() into a critical section.
>>
>> When running 027_stream_regress on a slow machine with the aggressive
>> autovacuum settings, having those patches applied, I've stumbled upon:
>> TRAP: failed Assert("CritSectionCount == 0 || (context)->allowInCritSection"), File: "mcxt.c", Line: 1353, PID: 24468
>> ...
>> 2024-05-14 12:30:03.542 UTC [22964:4] LOG: server process (PID 24468) was terminated by signal 6: Aborted
>> 2024-05-14 12:30:03.542 UTC [22964:5] DETAIL: Failed process was running: autovacuum: VACUUM ANALYZE pg_catalog.pg_class
>>
>> with the following stack trace:
>> Core was generated by `postgres: primary: autovacuum worker regression '.
>> Program terminated with signal SIGABRT, Aborted.
>> #0 __libc_do_syscall () at ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S:47
>> (gdb) bt
>> #0 __libc_do_syscall () at ../sysdeps/unix/sysv/linux/arm/libc-do-syscall.S:47
>> #1 0xb63c90ae in __libc_signal_restore_set (set=0xbe99f34c) at ../sysdeps/unix/sysv/linux/internal-signals.h:84
>> #2 __GI_raise (sig=sig(at)entry=6) at ../sysdeps/unix/sysv/linux/raise.c:48
>> #3 0xb63bb1f2 in __GI_abort () at abort.c:79
>> #4 0xb6d3e2d0 in ExceptionalCondition (conditionName=<optimized out>, fileName=<optimized out>,
>> lineNumber=lineNumber(at)entry=1353) at assert.c:66
>> #5 0xb6d61834 in palloc0 (size=3062661664) at mcxt.c:1353
>> #6 0xb6bcd304 in CompactCheckpointerRequestQueue () at checkpointer.c:1173
>> #7 ForwardSyncRequest (ftag=ftag(at)entry=0xbe99f7d0, type=type(at)entry=SYNC_REQUEST) at checkpointer.c:1113
>> #8 0xb6c4b3c4 in RegisterSyncRequest (ftag=ftag(at)entry=0xbe99f7d0, type=type(at)entry=SYNC_REQUEST,
>> retryOnError=retryOnError(at)entry=false) at sync.c:605
>> #9 0xb6c48e62 in register_dirty_segment (reln=reln(at)entry=0xb8ec75a8, forknum=forknum(at)entry=MAIN_FORKNUM, seg=<optimized
>> out>, seg=<optimized out>) at md.c:1369
>> #10 0xb6c4a0c6 in mdtruncate (reln=0xb8ec75a8, forknum=MAIN_FORKNUM, nblocks=45) at md.c:1229
>> #11 0xb6c4abe8 in smgrtruncate (reln=0xb8ec75a8, forknum=forknum(at)entry=0xbe99f86c, nforks=nforks(at)entry=2,
>> nblocks=nblocks(at)entry=0xbe99f878) at smgr.c:743
>> #12 0xb6a3e8c6 in RelationTruncate (rel=0xb2e969a0, nblocks=nblocks(at)entry=45) at ../../../src/include/utils/rel.h:574
>> #13 0xb69b8042 in lazy_truncate_heap (vacrel=0xb8ee8f38) at vacuumlazy.c:2642
>> ...
>
> This should've also been fixed by commit b1ffe3ff0b.
To clarify commit b1ffe3ff0b only fixed this assertion failure, if you
call RelationTruncate in a critical section, like in with this patch.
Not the original issue.
--
Heikki Linnakangas
Neon (https://neon.tech)
From | Date | Subject | |
---|---|---|---|
Next Message | Zhijie Hou (Fujitsu) | 2024-06-27 03:31:06 | RE: PG16 walsender hangs in ResourceArrayEnlarge using pgoutput |
Previous Message | Heikki Linnakangas | 2024-06-26 20:58:13 | Re: BUG #18146: Rows reappearing in Tables after Auto-Vacuum Failure in PostgreSQL on Windows |