BUG #17744: Fail Assert while recoverying from pg_basebackup
От | PG Bug reporting form |
---|---|
Тема | BUG #17744: Fail Assert while recoverying from pg_basebackup |
Дата | |
Msg-id | 17744-2c95e2b7783d7232@postgresql.org обсуждение исходный текст |
Ответы |
Re: BUG #17744: Fail Assert while recoverying from pg_basebackup
|
Список | pgsql-bugs |
The following bug has been logged on the website: Bug reference: 17744 Logged by: bowenshi Email address: zxwsbg12138@gmail.com PostgreSQL version: 15.1 Operating system: centos Description: Dears, There may be some problems in recovery. The following step can stably reproducing the problem: Firstly, run following script in master. To make sure that we have at least 20GB data. 1. create table t(a int); 2. echo "insert into t select generate_series(1,5000);">script.sql 3. pgbench --no-vacuum --client=25 -U postgres --transactions=10000 --file script.sql Secondly, using pg_basebackup with stream mode 1. pg_basebackup --checkpoint=fast -h localhost -U postgres -p 5432 -Xs -Ft -v -P -D /data2/sqpg/inst/data_b 2. pgbench --no-vacuum --client=25 -U postgres --transactions=3000 --file script.sql (Run this script concurrently during pg_basebackup) Thirdly, we start the backup instance cd /data2/sqpg/inst/data_b tar xvf base.tar mv pg_wal.tar pg_wal/ cd pg_wal tar xvf pg_wal.tar cd ../ echo "port=5433">>postgresql.conf echo "log_min_messages=debug1">>postgresql.conf echo "checkpoint_timeout=30s">>postgresql.conf cd /data2/sqpg/inst/bin ./pg_ctl start -D ../data_b -l logfile_b Then during crash recovery, the checkpoint process will do a restart point , and this would fail in Assert. The stack is following TRAP: FailedAssertion("TransactionIdIsValid(initial)", File: "procarray.c", Line: 1750, PID: 2063) postgres: checkpointer (ExceptionalCondition+0xb9)[0xb378bc] postgres: checkpointer [0x962195] postgres: checkpointer (GetOldestTransactionIdConsideredRunning+0x14)[0x9628a3] postgres: checkpointer (CreateRestartPoint+0x698)[0x5972bf] postgres: checkpointer (CheckpointerMain+0x5b7)[0x8cae37] postgres: checkpointer (AuxiliaryProcessMain+0x165)[0x8c8b01] postgres: checkpointer [0x8d32b2] postgres: checkpointer (PostmasterMain+0x11dd)[0x8ce559] postgres: checkpointer [0x7d38e7] /lib64/libc.so.6(__libc_start_main+0xf5)[0x7f80352c9555] postgres: checkpointer [0x48d1b9] 2023-01-10 07:25:42.368 UTC [2062] LOG: checkpointer process (PID 2063) was terminated by signal 6: Aborted (gdb) bt #0 0x00007f80352dd3d7 in raise () from /lib64/libc.so.6 #1 0x00007f80352deac8 in abort () from /lib64/libc.so.6 #2 0x0000000000b378e9 in ExceptionalCondition ( conditionName=0xd13697 "TransactionIdIsValid(initial)", errorType=0xd12df4 "FailedAssertion", fileName=0xd12de8 "procarray.c", lineNumber=1750) at assert.c:69 #3 0x0000000000962195 in ComputeXidHorizons (h=0x7ffe93de25e0) at procarray.c:1750 #4 0x00000000009628a3 in GetOldestTransactionIdConsideredRunning () at procarray.c:2050 #5 0x00000000005972bf in CreateRestartPoint (flags=256) at xlog.c:7153 #6 0x00000000008cae37 in CheckpointerMain () at checkpointer.c:464 #7 0x00000000008c8b01 in AuxiliaryProcessMain (auxtype=CheckpointerProcess) at auxprocess.c:153 #8 0x00000000008d32b2 in StartChildProcess (type=CheckpointerProcess) at postmaster.c:5430 #9 0x00000000008ce559 in PostmasterMain (argc=3, argv=0x18149a0) at postmaster.c:1463 #10 0x00000000007d38e7 in main (argc=3, argv=0x18149a0) at main.c:202
В списке pgsql-bugs по дате отправления: