On 4/7/24 14:37, David Rowley wrote:
> On Sun, 7 Apr 2024 at 22:05, John Naylor <johncnaylo...@gmail.com> wrote:
>>
>> On Sat, Apr 6, 2024 at 7:37 PM David Rowley <dgrowle...@gmail.com> wrote:
>>>
>> I'm planning on pushing these, pending a final look at 0002 and 0003
>>> on Sunday morning NZ time (UTC+12), likely in about 10 hours time.
>>
>> +1
>
> I've now pushed all 3 patches. Thank you for all the reviews on
> these and for the extra MemoryContextMethodID bit, Matthias.
>
>> I haven't looked at v6, but I've tried using it in situ, and it seems
>> to work as well as hoped:
>>
>> https://www.postgresql.org/message-id/CANWCAZZQFfxvzO8yZHFWtQV%2BZ2gAMv1ku16Vu7KWmb5kZQyd1w%40mail.gmail.com
>
> I'm already impressed with the radix tree work. Nice to see bump
> allowing a little more memory to be saved for TID storage.
>
> David
There seems to be some issue with this on 32-bit machines. A couple
animals (grison, mamba) already complained about an assert int
BumpCheck() during initdb, I get the same crash on my rpi5 running
32-bit debian - see the backtrace attached.
I haven't investigated, but I'd considering it works on 64-bit, I guess
it's not considering alignment somewhere. I can dig more if needed.
regards
--
Tomas Vondra
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
warning: Can't open file /SYSV003414ed (deleted) during file-backed mapping
note processing
[New LWP 20363]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1".
Core was generated by
`/mnt/data/postgres/tmp_install/home/debian/pg-master/bin/postgres --boot -F
-c'.
Program terminated with signal SIGABRT, Aborted.
#0 __pthread_kill_implementation (threadid=4152716800, signo=6,
no_tid=<optimized out>) at pthread_kill.c:44
44 pthread_kill.c: No such file or directory.
(gdb) bt
#0 __pthread_kill_implementation (threadid=4152716800, signo=6,
no_tid=<optimized out>) at pthread_kill.c:44
#1 0xf721bcfc in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#2 0xf72050a0 in __GI_abort () at abort.c:79
#3 0x008b29fc in ExceptionalCondition (conditionName=0xb1c3cc "total_allocated
== context->mem_allocated", fileName=0xb1bf98 "bump.c", lineNumber=808) at
assert.c:66
#4 0x008f0088 in BumpCheck (context=0x131e330) at bump.c:808
#5 0x008ef1bc in BumpReset (context=0x131e330) at bump.c:258
#6 0x008ef310 in BumpDelete (context=0x131e330) at bump.c:287
#7 0x008fab58 in MemoryContextDeleteOnly (context=0x131e330) at mcxt.c:528
#8 0x008faa00 in MemoryContextDelete (context=0x131e330) at mcxt.c:482
#9 0x008fac1c in MemoryContextDeleteChildren (context=0x131c328) at mcxt.c:548
#10 0x008fa75c in MemoryContextReset (context=0x131c328) at mcxt.c:389
#11 0x0090a1a8 in tuplesort_free (state=0x131a3b8) at tuplesort.c:958
#12 0x0090a1fc in tuplesort_end (state=0x131a3b8) at tuplesort.c:973
#13 0x00149250 in _bt_spooldestroy (btspool=0x1222b20) at nbtsort.c:517
#14 0x00149200 in _bt_spools_heapscan (heap=0xebf9f250, index=0xebf426e0,
buildstate=0xffde9ed0, indexInfo=0x12e8f90) at nbtsort.c:504
#15 0x00148e30 in btbuild (heap=0xebf9f250, index=0xebf426e0,
indexInfo=0x12e8f90) at nbtsort.c:321
#16 0x001fd164 in index_build (heapRelation=0xebf9f250,
indexRelation=0xebf426e0, indexInfo=0x12e8f90, isreindex=false, parallel=false)
at index.c:3021
#17 0x001e0404 in build_indices () at bootstrap.c:962
#18 0x001da92c in boot_yyparse () at bootparse.y:388
#19 0x001de988 in BootstrapModeMain (argc=6, argv=0x119c114, check_only=false)
at bootstrap.c:357
#20 0x004389e4 in main (argc=7, argv=0x119c110) at main.c:186
(gdb) up
#1 0xf721bcfc in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
26 ../sysdeps/posix/raise.c: No such file or directory.
(gdb) up
#2 0xf72050a0 in __GI_abort () at abort.c:79
79 abort.c: No such file or directory.
(gdb) up
#3 0x008b29fc in ExceptionalCondition (conditionName=0xb1c3cc "total_allocated
== context->mem_allocated", fileName=0xb1bf98 "bump.c", lineNumber=808) at
assert.c:66
66 abort();
(gdb) up
#4 0x008f0088 in BumpCheck (context=0x131e330) at bump.c:808
808 Assert(total_allocated == context->mem_allocated);
(gdb) p total_allocated
$1 = 8120
(gdb) p context->mem_allocated
$2 = 8192