Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vnrTM-00Cgn5-2e for pgsql-hackers@arkaria.postgresql.org; Thu, 05 Feb 2026 05:00:08 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vnrTL-00FCie-1y for pgsql-hackers@arkaria.postgresql.org; Thu, 05 Feb 2026 05:00:07 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vnrTL-00FCiV-0Z for pgsql-hackers@lists.postgresql.org; Thu, 05 Feb 2026 05:00:07 +0000 Received: from mail-wm1-x332.google.com ([2a00:1450:4864:20::332]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1vnrTI-00000000d9X-2t55 for pgsql-hackers@postgresql.org; Thu, 05 Feb 2026 05:00:05 +0000 Received: by mail-wm1-x332.google.com with SMTP id 5b1f17b1804b1-4806f80cac9so2720735e9.1 for ; Wed, 04 Feb 2026 21:00:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1770267603; x=1770872403; darn=postgresql.org; h=in-reply-to:from:content-language:references:to:subject:user-agent :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to; bh=0H3S2nghy/NiIjda59CJ6vgRKbU3i/aMdgbyHohXdJE=; b=NzYi0knxWtkbaBRTkuffecoK1D+umG/binzsiMv7GbgpmfXEz7yIuDjqN5pGK76vxS 7Vbm8utlX7Qa5MYWFHJVxNEkjg5YxudBCUFpT+LGrgHwisRnXj/1WvPouB0fmbU0H1lC w0GpJjYpUS7k8zmzARY97MLWiFtIshYUMXE2XkD0hZjNMGmxedmOuVwYlXQOOxBiHq9l XSkLyQiYfYcIUKDaUCmVd+ozRnZDQITO3d5LIi7kLayi4P498YAizO3YiyE0frvEmJY/ UPvNuiByM6rmRFa8EHaoD40b/QTwoibbIm1vMwNoCTSZ+sM2DrntlQTWcuv9v8yyB/hK xdvg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770267603; x=1770872403; h=in-reply-to:from:content-language:references:to:subject:user-agent :mime-version:date:message-id:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=0H3S2nghy/NiIjda59CJ6vgRKbU3i/aMdgbyHohXdJE=; b=Z+yCv7BsYYI3lA6eTSBEo+0GTGL9ERWvnZrrtQtN9bFJXcKxlLso8/nBYzGjNdGtny HStyucQPOunGFcyn2OwCo/tgFmuVgZgjiAd+bfSen1c6vcYXxEmv0Xy5wLL9aniTPEjI gJPED1fCpE4UYpR9kUTgL1YENs4adHVSJCWDzkmEZ9O+A6wGb2S0En6ftRCRsR3DcapT KVK17ZcW1AZvDP+crbUg4PhG76od68nB5ApO+bHR5ByOAWL774+EoznzkkqXwPexqu7X YiypDbsdhgqE5jcXRbtflj/fehvIoml0lhnEmQe4haGvE3EAO15ELtP32GsZmXa2u50M zjsw== X-Forwarded-Encrypted: i=1; AJvYcCVBWAo/pNOn/nFGvefAh77DJF15BIVacgxjGNHJZ4pYFCuNH1MZAIWm+qegpr3mohg04VA2to6hcL2T8UT5@postgresql.org X-Gm-Message-State: AOJu0YxcOpqcjV0/0E2uoEZOMgEv/BRFUtXf7DdFOrrx7YAURV8V8hNb rC8NeYREBZSH96kv/r8R/zIlszD/l0AmLcHt3JjZgaudyVCPwn2zIYWCZhQzmA== X-Gm-Gg: AZuq6aIJuGDMgXyOHH4XvIAPPTCz006mPdyRxJtSdS9oPfh5dxx+G29uIQHLT0FOcpk zIqE9G2Bxqrza7J4xes/p0yuu2nJUiDTMbz//WAeLN9JSZjmE7Uwg3a9bAAIkMKl8kAxwJK5b35 3saa3JgGRhbkwE7b5ra/ua7vAUcseG7iQfMcAiK5UJ9Wz64hxcVwIpdUJdOuZ4zCT0HpZioeIaR Dkaxfw9vzsJa9X7jzUe7BFgEF4sUhlgaKPO5a6dOpzNPeWT/tZA9jkhTsiVCusRlRVCsCpA3XwV +O40QXnKhdaQr68nXFc/KM3aYwQrrDjPOtlYXz0pW9uUhQipLBB06KiIWncsQN91KR3QQnK+n9U XylhWncnApTEQevEerQ4AadrzOpyNSOQizxv32sFUprhEgZfr/kLWmgn0HCj0xDF4WXgSkYinxN FOm1w+UeJTPEEET0xZ+dKpjKc= X-Received: by 2002:a05:600c:3acd:b0:47f:1a8d:4f30 with SMTP id 5b1f17b1804b1-4830e972198mr66657885e9.26.1770267602855; Wed, 04 Feb 2026 21:00:02 -0800 (PST) Received: from [192.168.0.50] ([89.149.68.140]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-48317d7a963sm25619245e9.9.2026.02.04.21.00.01 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 04 Feb 2026 21:00:01 -0800 (PST) Content-Type: multipart/alternative; boundary="------------VoSDEU1esE7qw88Uy1BzSYxf" Message-ID: <180bf13e-235d-46a9-9788-7d6cee40bcdc@gmail.com> Date: Thu, 5 Feb 2026 07:00:01 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: BUG: Former primary node might stuck when started as a standby To: Aleksander Alekseev , pgsql-hackers References: <74ea5e7e-9aa0-4d7a-85df-71a9d200a8d8@gmail.com> Content-Language: en-US From: Alexander Lakhin In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------VoSDEU1esE7qw88Uy1BzSYxf Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Hello, 22.01.2024 13:00, Aleksander Alekseev wrote: >> Perhaps that's true generally, but as we can see, without the extra >> records replayed, this scenario works just fine. Moreover, existing tests >> rely on it, e.g., 009_twophase.pl or 012_subtransactions.pl (in fact, my >> research of the issue was initiated per a test failure). > I suggest focusing on particular flaky tests then and how to fix them. For the record: skink produced the same failure with 009_twophase.pl yesterday [1]: 366/366 postgresql:recovery / recovery/009_twophase TIMEOUT        15000.31s   killed by signal 15 SIGTERM [15:11:30.591](0.807s) ok 11 - Restore of prepared transaction on promoted standby ### Enabling streaming replication for node "london" ### Starting node "london" # Running: pg_ctl --wait --pgdata /home/bf/bf-build/skink-master/HEAD/pgsql.build/testrun/recovery/009_twophase/data/t_009_twophase_london_data/pgdata --log /home/bf/bf-build/skink-master/HEAD/pgsql.build/testrun/recovery/009_twophase/log/009_twophase_london.log --options --cluster-name=london start waiting for server to start....... done server started # Postmaster PID for node "london" is 4181556 death by signal at /home/bf/bf-build/skink-master/HEAD/pgsql/src/test/perl/PostgreSQL/Test/Cluster.pm line 181. # Postmaster PID for node "london" is 4181556 ### Stopping node "london" using mode immediate # Running: pg_ctl --pgdata /home/bf/bf-build/skink-master/HEAD/pgsql.build/testrun/recovery/009_twophase/data/t_009_twophase_london_data/pgdata --mode immediate stop waiting for server to shut down.... done server stopped # No postmaster PID for node "london" # Postmaster PID for node "paris" is 4147391 ### Stopping node "paris" using mode immediate # Running: pg_ctl --pgdata /home/bf/bf-build/skink-master/HEAD/pgsql.build/testrun/recovery/009_twophase/data/t_009_twophase_paris_data/pgdata --mode immediate stop waiting for server to shut down.... done server stopped # No postmaster PID for node "paris" [19:19:46.999](14896.408s) # Tests were run but no plan was declared and done_testing() was not seen. [19:19:46.999](0.000s) # Looks like your test exited with 4 just after 11. pgsql.build/testrun/recovery/009_twophase/log/009_twophase_london.log 2026-02-04 15:11:35.675 CET [4181556][postmaster][:0] LOG:  starting PostgreSQL 19devel on x86_64-linux, compiled by gcc-15.2.0, 64-bit 2026-02-04 15:11:35.692 CET [4181556][postmaster][:0] LOG: listening on Unix socket "/tmp/IzuUID03TM/.s.PGSQL.22911" 2026-02-04 15:11:35.904 CET [4183900][startup][:0] LOG:  database system was interrupted; last known up at 2026-02-04 15:11:14 CET 2026-02-04 15:11:36.017 CET [4183900][startup][:0] LOG:  entering standby mode 2026-02-04 15:11:36.019 CET [4183900][startup][:0] LOG:  database system was not properly shut down; automatic recovery in progress 2026-02-04 15:11:36.104 CET [4183900][startup][38/0:0] LOG:  redo starts at 0/03021600 2026-02-04 15:11:36.206 CET [4183900][startup][38/0:0] LOG:  invalid record length at 0/030220B8: expected at least 24, got 0 2026-02-04 15:11:36.209 CET [4183900][startup][38/0:0] LOG: consistent recovery state reached at 0/030220B8 2026-02-04 15:11:36.210 CET [4181556][postmaster][:0] LOG:  database system is ready to accept read-only connections 2026-02-04 15:11:36.919 CET [4184142][walreceiver][:0] LOG: fetching timeline history file for timeline 2 from primary server 2026-02-04 15:11:36.997 CET [4184142][walreceiver][:0] LOG:  started streaming WAL from primary at 0/03000000 on timeline 1 2026-02-04 15:11:37.076 CET [4184142][walreceiver][:0] LOG: replication terminated by primary server 2026-02-04 15:11:37.076 CET [4184142][walreceiver][:0] DETAIL:  End of WAL reached on timeline 1 at 0/03022070. 2026-02-04 15:11:37.098 CET [4183900][startup][38/0:0] LOG:  new timeline 2 forked off current database system timeline 1 before current recovery point 0/030220B8 2026-02-04 15:11:37.103 CET [4184142][walreceiver][:0] LOG: restarted WAL streaming at 0/03000000 on timeline 1 2026-02-04 15:11:37.107 CET [4184142][walreceiver][:0] LOG: replication terminated by primary server ... [1] https://buildfarm.postgresql.org/cgi-bin/show_stage_log.pl?nm=skink&dt=2026-02-04%2013%3A36%3A40&stg=recovery-check Best regards, Alexander --------------VoSDEU1esE7qw88Uy1BzSYxf Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 8bit
Hello,

22.01.2024 13:00, Aleksander Alekseev wrote:
Perhaps that's true generally, but as we can see, without the extra
records replayed, this scenario works just fine. Moreover, existing tests
rely on it, e.g., 009_twophase.pl or 012_subtransactions.pl (in fact, my
research of the issue was initiated per a test failure).
I suggest focusing on particular flaky tests then and how to fix them.

For the record: skink produced the same failure with 009_twophase.pl
yesterday [1]:

366/366 postgresql:recovery / recovery/009_twophase                                     TIMEOUT        15000.31s   killed by signal 15 SIGTERM

[15:11:30.591](0.807s) ok 11 - Restore of prepared transaction on promoted standby
### Enabling streaming replication for node "london"
### Starting node "london"
# Running: pg_ctl --wait --pgdata /home/bf/bf-build/skink-master/HEAD/pgsql.build/testrun/recovery/009_twophase/data/t_009_twophase_london_data/pgdata --log /home/bf/bf-build/skink-master/HEAD/pgsql.build/testrun/recovery/009_twophase/log/009_twophase_london.log --options --cluster-name=london start
waiting for server to start....... done
server started
# Postmaster PID for node "london" is 4181556
death by signal at /home/bf/bf-build/skink-master/HEAD/pgsql/src/test/perl/PostgreSQL/Test/Cluster.pm line 181.
# Postmaster PID for node "london" is 4181556
### Stopping node "london" using mode immediate
# Running: pg_ctl --pgdata /home/bf/bf-build/skink-master/HEAD/pgsql.build/testrun/recovery/009_twophase/data/t_009_twophase_london_data/pgdata --mode immediate stop
waiting for server to shut down.... done
server stopped
# No postmaster PID for node "london"
# Postmaster PID for node "paris" is 4147391
### Stopping node "paris" using mode immediate
# Running: pg_ctl --pgdata /home/bf/bf-build/skink-master/HEAD/pgsql.build/testrun/recovery/009_twophase/data/t_009_twophase_paris_data/pgdata --mode immediate stop
waiting for server to shut down.... done
server stopped
# No postmaster PID for node "paris"
[19:19:46.999](14896.408s) # Tests were run but no plan was declared and done_testing() was not seen.
[19:19:46.999](0.000s) # Looks like your test exited with 4 just after 11.

pgsql.build/testrun/recovery/009_twophase/log/009_twophase_london.log
2026-02-04 15:11:35.675 CET [4181556][postmaster][:0] LOG:  starting PostgreSQL 19devel on x86_64-linux, compiled by gcc-15.2.0, 64-bit
2026-02-04 15:11:35.692 CET [4181556][postmaster][:0] LOG:  listening on Unix socket "/tmp/IzuUID03TM/.s.PGSQL.22911"
2026-02-04 15:11:35.904 CET [4183900][startup][:0] LOG:  database system was interrupted; last known up at 2026-02-04 15:11:14 CET
2026-02-04 15:11:36.017 CET [4183900][startup][:0] LOG:  entering standby mode
2026-02-04 15:11:36.019 CET [4183900][startup][:0] LOG:  database system was not properly shut down; automatic recovery in progress
2026-02-04 15:11:36.104 CET [4183900][startup][38/0:0] LOG:  redo starts at 0/03021600
2026-02-04 15:11:36.206 CET [4183900][startup][38/0:0] LOG:  invalid record length at 0/030220B8: expected at least 24, got 0
2026-02-04 15:11:36.209 CET [4183900][startup][38/0:0] LOG:  consistent recovery state reached at 0/030220B8
2026-02-04 15:11:36.210 CET [4181556][postmaster][:0] LOG:  database system is ready to accept read-only connections
2026-02-04 15:11:36.919 CET [4184142][walreceiver][:0] LOG:  fetching timeline history file for timeline 2 from primary server
2026-02-04 15:11:36.997 CET [4184142][walreceiver][:0] LOG:  started streaming WAL from primary at 0/03000000 on timeline 1
2026-02-04 15:11:37.076 CET [4184142][walreceiver][:0] LOG:  replication terminated by primary server
2026-02-04 15:11:37.076 CET [4184142][walreceiver][:0] DETAIL:  End of WAL reached on timeline 1 at 0/03022070.
2026-02-04 15:11:37.098 CET [4183900][startup][38/0:0] LOG:  new timeline 2 forked off current database system timeline 1 before current recovery point 0/030220B8
2026-02-04 15:11:37.103 CET [4184142][walreceiver][:0] LOG:  restarted WAL streaming at 0/03000000 on timeline 1
2026-02-04 15:11:37.107 CET [4184142][walreceiver][:0] LOG:  replication terminated by primary server
...

[1] https://buildfarm.postgresql.org/cgi-bin/show_stage_log.pl?nm=skink&dt=2026-02-04%2013%3A36%3A40&stg=recovery-check

Best regards,
Alexander
--------------VoSDEU1esE7qw88Uy1BzSYxf--