| From: | Alexander Lakhin <exclusion(at)gmail(dot)com> |
|---|---|
| To: | pgsql-hackers <pgsql-hackers(at)postgresql(dot)org> |
| Cc: | Andres Freund <andres(at)anarazel(dot)de>, Heikki Linnakangas <hlinnaka(at)iki(dot)fi> |
| Subject: | New test rowtypes-alter might fail on unallowed parallel worker appearance |
| Date: | 2026-11-11 21:30:00 |
| Message-ID: | 8995f5e1-97d1-48c9-98d7-32e5e6c35571@gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
Hello hackers,
A new test isolation/rowtypes-alter produced a failure on buildfarm [1],
seemingly caused by a second parallel worker started despite
max_parallel_workers = 1:
# --- /home/rocky/amphisbaena/buildroot/HEAD/pgsql/src/test/isolation/expected/rowtypes-alter.out 2026-11-11
05:54:57.585807196 +0000
# +++ /home/rocky/amphisbaena/buildroot/HEAD/pgsql.build/testrun/isolation/isolation/results/rowtypes-alter.out
2026-11-11 05:59:39.045730153 +0000
# @@ -150,11 +150,11 @@
# FROM (SELECT ROW(id, b)::rta_type AS r FROM rta_ptab WHERE id = 1 OFFSET 0) s;
# <waiting ...>
# step s2_alter_type: ALTER TYPE rta_type ALTER ATTRIBUTE b TYPE text;
# +step s3_leader: <... completed>
# +ERROR: ROW() column has type bytea instead of type text
# step s2_unlock: SELECT pg_advisory_unlock(1);
# pg_advisory_unlock
# ------------------
# t
# (1 row)
#
# -step s3_leader: <... completed>
# -ERROR: row type of datum tuple was altered after the datum's creation
# 1 of 139 tests failed.
I have reproduced this locally with a sleep added inside
LaunchParallelWorkers() (the patch is attached) and with:
printf 'test: rowtypes-alter\n%.0s' `seq 100` > src/test/isolation/isolation_schedule
make -s check -C src/test/isolation/
fails for me as below:
...
not ok 99 - rowtypes-alter 275 ms
ok 100 - rowtypes-alter 236 ms
1..100
# 35 of 100 tests failed.
postmaster.log (with log_min_messages = DEBUG3 ) contains:
2026-11-11 21:04:14.401 UTC [330022][client backend][17/11:0] LOG: !!!ParallelWorkerMain| i: 0, sleep: 92
2026-11-11 21:04:14.401 UTC [330022][client backend][17/11:0] STATEMENT:
SELECT rta_wait_read(r)
FROM (SELECT ROW(id, b)::rta_type AS r FROM rta_ptab WHERE id = 1 OFFSET 0) s;
2026-11-11 21:04:14.401 UTC [329970][postmaster][:0] DEBUG: postmaster received pmsignal signal
2026-11-11 21:04:14.401 UTC [329970][postmaster][:0] DEBUG: registering background worker "parallel worker for PID 330022"
2026-11-11 21:04:14.401 UTC [329970][postmaster][:0] DEBUG: assigned pm child slot 239 for background worker
2026-11-11 21:04:14.401 UTC [329970][postmaster][:0] DEBUG: starting background worker process "parallel worker for PID
330022"
2026-11-11 21:04:14.401 UTC [330023][parallel worker][124/0:0] DEBUG: InitPostgres
...
2026-11-11 21:04:14.405 UTC [330023][parallel worker][:0] DEBUG: proc_exit(-1): 0 callbacks to make
...
2026-11-11 21:04:14.503 UTC [329970][postmaster][:0] DEBUG: starting background worker process "parallel worker for PID
330022"
2026-11-11 21:04:14.503 UTC [330024][parallel worker][125/0:0] DEBUG: InitPostgres
2026-11-11 21:04:14.504 UTC [330019][client backend][14/0:0] DEBUG: bind <unnamed> to isolationtester_waiting
2026-11-11 21:04:14.504 UTC [330019][client backend][14/30:0] LOG: execute isolationtester_waiting: SELECT
pg_catalog.pg_isolation_test_session_is_blocked($1, '{330020,330021,330022}')
2026-11-11 21:04:14.504 UTC [330019][client backend][14/30:0] DETAIL: Parameters: $1 = '330022'
2026-11-11 21:04:14.504 UTC [330021][client backend][16/15:0] LOG: statement: ALTER TYPE rta_type ALTER ATTRIBUTE b TYPE
text;
2026-11-11 21:04:14.507 UTC [330024][parallel worker][125/6:0] ERROR: ROW() column has type bytea instead of type text
[1] https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=amphisbaena&dt=2026-11-11%2005%3A54%3A56
Best regards,
Alexander
| Attachment | Content-Type | Size |
|---|---|---|
| paralel-launch-delay.patch | text/x-patch | 686 bytes |
| From | Date | Subject | |
|---|---|---|---|
| Previous Message | Alexander Korotkov | 2026-11-11 21:28:10 | Re: test: avoid redundant standby catchup in 049_wait_for_lsn |