Re: IPC/MultixactCreation on the Standby server
Heikki Linnakangas <hlinnaka@iki.fi>
From: Heikki Linnakangas <hlinnaka@iki.fi>
To: Andrey Borodin <x4mmm@yandex-team.ru>
Cc: Álvaro Herrera <alvherre@kurilemu.de>, pgsql-hackers@lists.postgresql.org, Ivan Bykov <i.bykov@modernsys.ru>, Kirill Reshke <reshkekirill@gmail.com>
Date: 2025-12-02T13:48:40Z
Lists: pgsql-hackers
On 02/12/2025 15:44, Andrey Borodin wrote: >> On 1 Dec 2025, at 20:29, Andrey Borodin <x4mmm@yandex-team.ru> wrote: >> >> I'm looking through patchsets. I'll look in the morning with fresh eyes. > > So far I have no findings. > I also tried to stress-test v14. I assumed that if regression slipped in, most probably it is inherited by 14 from higher versions. Thanks! Agreed, v14-16 were the same. v17 and v18 might be worth testing separately, to make sure I didn't e.g. screw up the locking differences. > I used slightly modified scripts from Dmitry who started this thread. > > DB initialization: > create table tbl2 (id int primary key,val int); > insert into tbl2 select i, 0 from generate_series(1,100000) i; > > Load with multi: > \set id random(1, 10000) > begin; > select * from tbl2 where id = :id for no key update; > savepoint s1; > update tbl2 set val = val+1 where id = :id; > commit; > > Consistency test: > select sum(val) from tbl2; > > Stress-test script: > while true; do pkill -9 postgres; ./pg_ctl -D testdb restart; (./pgbench --no-vacuum -M prepared -c 50 -j 4 -T 300 -P 1 postgres --file=load.sql &); sleep 5; done > > To promote multixact races I tried this with patched version: added random sleep up to 50ms between GetNewMultiXactId() and RecordNewMultiXact(). > > So far I did not manage to corrupt database. > > What else kind of loads worth exercising? Combinations of patched and unpatched binaries, as primary/replica and crash recovery. I did some testing of crash recovery, but more would be good. - Heikki
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Fix test to work with non-8kB block sizes
- 7c2061bdfba7 19 (unreleased) landed
-
Fix setting next multixid's offset at offset wraparound
- 48969555447f 14.21 landed
- b9a02b9780bc 15.16 landed
- 4d689a17693e 16.12 landed
- cad40cec24f3 17.8 landed
- 02ba5e3be4f3 18.2 landed
- 4d936c3fff1a 19 (unreleased) landed
-
Add test for multixid wraparound
- 7b81be9b4267 19 (unreleased) landed
-
Set next multixid's offset when creating a new multixid
- 81416e1016dd 14.21 landed
- 8cfb174a61eb 15.16 landed
- 635166913078 16.12 landed
- 8ba61bc06386 17.8 landed
- e46041fd973c 18.2 landed
- 789d65364cde 19 (unreleased) landed
-
psql: Improve tab completion for large objects.
- 14ee8e640300 19 (unreleased) cited
-
Refactor some repetitive SLRU code
- c61678551699 19 (unreleased) cited
-
Transaction IDs wrap around, per my proposal of 13-Aug-01. More
- bc7d37a525c0 7.2.1 cited