New test rowtypes-alter might fail on unallowed parallel worker appearance

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

Browse pgsql-hackers by date

  From Date Subject
Previous Message Alexander Korotkov 2026-11-11 21:28:10 Re: test: avoid redundant standby catchup in 049_wait_for_lsn