#1131248 pgl-ddl-deploy: FTBFS in trixie: override_dh_pgxs_test fails

#1131248#5
Date:
2026-03-19 11:36:59 UTC
From:
To:
Dear maintainer:

During a rebuild of all packages in trixie, this package failed to build.

Below you will find the last part of the build log (probably the most
relevant part, but not necessarily). If required, the full build log
is available here:

https://people.debian.org/~sanvila/build-logs/trixie/

About the archive rebuild: The build was made on virtual machines from AWS,
using sbuild and a reduced chroot with only build-essential packages.

If you cannot reproduce the bug please contact me privately, as I
am willing to provide ssh access to a virtual machine where the bug is
fully reproducible.

If this is really a bug in one of the build-depends, please use
reassign and add an affects on src:pgl-ddl-deploy, so that this is still
visible in the BTS web page for this package.

Thanks.
--------------------------------------------------------------------------------
[...]

- test3    | DROP TABLE foobar.foo CASCADE; | DROP TABLE foobar.foo CASCADE;
+ set_name |                           ddl_sql_raw                            |                           ddl_sql_sent
+----------+------------------------------------------------------------------+------------------------------------------------------------------
+ test4    | DROP TABLE foo CASCADE;                                          | DROP TABLE foo CASCADE;
+ test3    | DROP TABLE foo CASCADE;                                          | DROP TABLE foo CASCADE;
+ test2    | DROP TABLE foo CASCADE;                                          | DROP TABLE foo CASCADE;
+ test1    | DROP TABLE foo CASCADE;                                          | DROP TABLE foo CASCADE;
+ test4    | DROP TABLE foobar.foo CASCADE;                                   | DROP TABLE foobar.foo CASCADE;
+ test3    | DROP TABLE foobar.foo CASCADE;                                   | DROP TABLE foobar.foo CASCADE;
+ test2    | DROP TABLE foobar.foo CASCADE;                                   | DROP TABLE foobar.foo CASCADE;
+ test1    | DROP TABLE foobar.foo CASCADE;                                   | DROP TABLE foobar.foo CASCADE;
+ test8    | ALTER TABLE foobar.foo ADD COLUMN foo_id INT REFERENCES foo(id); | ALTER TABLE foobar.foo ADD COLUMN foo_id INT REFERENCES foo(id);
+ test7    | ALTER TABLE foobar.foo ADD COLUMN foo_id INT REFERENCES foo(id); | ALTER TABLE foobar.foo ADD COLUMN foo_id INT REFERENCES foo(id);
 (10 rows)

 SELECT set_name, ddl_sql_raw, command_tag, reason FROM pgl_ddl_deploy.unhandled ORDER BY id DESC LIMIT 10;
- set_name |                                 ddl_sql_raw                                 |   command_tag   |          reason
-----------+-----------------------------------------------------------------------------+-----------------+--------------------------
- test4    | CREATE TABLE foo AS                                                        +| CREATE TABLE AS | unsupported_command
-          | SELECT 1 AS myfield;                                                        |                 |
- test3    | CREATE TABLE foo AS                                                        +| CREATE TABLE AS | unsupported_command
-          | SELECT 1 AS myfield;                                                        |                 |
- test2    | CREATE TABLE foo AS                                                        +| CREATE TABLE AS | unsupported_command
-          | SELECT 1 AS myfield;                                                        |                 |
- test1    | CREATE TABLE foo AS                                                        +| CREATE TABLE AS | unsupported_command
-          | SELECT 1 AS myfield;                                                        |                 |
- test8    | DROP TABLE foo, foobar.foo CASCADE;                                         | DROP TABLE      | mixed_objects
- test7    | DROP TABLE foo, foobar.foo CASCADE;                                         | DROP TABLE      | mixed_objects
- test6    | DROP TABLE foo, foobar.foo CASCADE;                                         | DROP TABLE      | mixed_objects
- test5    | DROP TABLE foo, foobar.foo CASCADE;                                         | DROP TABLE      | mixed_objects
- test8    | CREATE TABLE foobar.foo(id int primary key); DROP TABLE foobar.foo CASCADE; | CREATE TABLE    | rejected_multi_statement
- test6    | CREATE TABLE foobar.foo(id int primary key); DROP TABLE foobar.foo CASCADE; | CREATE TABLE    | rejected_multi_statement
+ set_name |             ddl_sql_raw             |   command_tag   |       reason
+----------+-------------------------------------+-----------------+---------------------
+ test4    | CREATE TABLE foo AS                +| CREATE TABLE AS | unsupported_command
+          | SELECT 1 AS myfield;                |                 |
+ test3    | CREATE TABLE foo AS                +| CREATE TABLE AS | unsupported_command
+          | SELECT 1 AS myfield;                |                 |
+ test2    | CREATE TABLE foo AS                +| CREATE TABLE AS | unsupported_command
+          | SELECT 1 AS myfield;                |                 |
+ test1    | CREATE TABLE foo AS                +| CREATE TABLE AS | unsupported_command
+          | SELECT 1 AS myfield;                |                 |
+ test8    | DROP TABLE foobar.foo CASCADE;      | DROP TABLE      | mixed_objects
+ test7    | DROP TABLE foobar.foo CASCADE;      | DROP TABLE      | mixed_objects
+ test6    | DROP TABLE foobar.foo CASCADE;      | DROP TABLE      | mixed_objects
+ test5    | DROP TABLE foobar.foo CASCADE;      | DROP TABLE      | mixed_objects
+ test8    | DROP TABLE foo, foobar.foo CASCADE; | DROP TABLE      | mixed_objects
+ test7    | DROP TABLE foo, foobar.foo CASCADE; | DROP TABLE      | mixed_objects
 (10 rows)

 SELECT 1 AS myfield INTO foobar.foo;
@@ -51,18 +51,18 @@
 WARNING:  Unhandled deployment logged in pgl_ddl_deploy.unhandled
 WARNING:  Unhandled deployment logged in pgl_ddl_deploy.unhandled
 SELECT set_name, ddl_sql_raw, ddl_sql_sent FROM pgl_ddl_deploy.events ORDER BY id DESC LIMIT 10;
- set_name |          ddl_sql_raw           |          ddl_sql_sent
-----------+--------------------------------+--------------------------------
- test4    | DROP TABLE foo CASCADE;        | DROP TABLE foo CASCADE;
- test3    | DROP TABLE foo CASCADE;        | DROP TABLE foo CASCADE;
- test2    | DROP TABLE foo CASCADE;        | DROP TABLE foo CASCADE;
- test1    | DROP TABLE foo CASCADE;        | DROP TABLE foo CASCADE;
- test8    | DROP TABLE foobar.foo CASCADE; | DROP TABLE foobar.foo CASCADE;
- test7    | DROP TABLE foobar.foo CASCADE; | DROP TABLE foobar.foo CASCADE;
- test6    | DROP TABLE foobar.foo CASCADE; | DROP TABLE foobar.foo CASCADE;
- test5    | DROP TABLE foobar.foo CASCADE; | DROP TABLE foobar.foo CASCADE;
- test4    | DROP TABLE foobar.foo CASCADE; | DROP TABLE foobar.foo CASCADE;
- test3    | DROP TABLE foobar.foo CASCADE; | DROP TABLE foobar.foo CASCADE;
+ set_name |                           ddl_sql_raw                            |                           ddl_sql_sent
+----------+------------------------------------------------------------------+------------------------------------------------------------------
+ test4    | DROP TABLE foo CASCADE;                                          | DROP TABLE foo CASCADE;
+ test3    | DROP TABLE foo CASCADE;                                          | DROP TABLE foo CASCADE;
+ test2    | DROP TABLE foo CASCADE;                                          | DROP TABLE foo CASCADE;
+ test1    | DROP TABLE foo CASCADE;                                          | DROP TABLE foo CASCADE;
+ test4    | DROP TABLE foobar.foo CASCADE;                                   | DROP TABLE foobar.foo CASCADE;
+ test3    | DROP TABLE foobar.foo CASCADE;                                   | DROP TABLE foobar.foo CASCADE;
+ test2    | DROP TABLE foobar.foo CASCADE;                                   | DROP TABLE foobar.foo CASCADE;
+ test1    | DROP TABLE foobar.foo CASCADE;                                   | DROP TABLE foobar.foo CASCADE;
+ test8    | ALTER TABLE foobar.foo ADD COLUMN foo_id INT REFERENCES foo(id); | ALTER TABLE foobar.foo ADD COLUMN foo_id INT REFERENCES foo(id);
+ test7    | ALTER TABLE foobar.foo ADD COLUMN foo_id INT REFERENCES foo(id); | ALTER TABLE foobar.foo ADD COLUMN foo_id INT REFERENCES foo(id);
 (10 rows)

 SELECT set_name, ddl_sql_raw, command_tag, reason FROM pgl_ddl_deploy.unhandled ORDER BY id DESC LIMIT 10;
diff -U3 /<<PKGBUILDDIR>>/expected/24_sub_retries.out /<<PKGBUILDDIR>>/results/24_sub_retries.out
--- /<<PKGBUILDDIR>>/expected/24_sub_retries.out	2023-11-29 20:12:27.000000000 +0000
+++ /<<PKGBUILDDIR>>/results/24_sub_retries.out	2026-03-14 17:46:03.337221674 +0000
@@ -236,10 +236,6 @@
  {test2}               | Q            | "\n        SELECT p [too-long-redacted] ver := ?\n        );\n        "
  {test3}               | Q            | "\n        SELECT pgl_ddl_deploy.subscriber_command\n        (\n          p_provider_name := ?,\n          p_set_name := ARRAY['test3'],\n          p_nspname := NULL,\n          p_relname := NULL,\n          p_ddl_sql_sent := $pgl_ddl_deploy_sql$DROP TABLE foobar.foo CASCADE;$pgl_ddl_deploy_sql$,\n          p_full_ddl := $pgl_ddl_deploy_sql$\n        --Be sure to use provider's search_path for SQL environment consistency\n            SET SEARCH_PATH TO \"$user\", public;\n\n            DROP TABLE foobar.foo CASCADE;\n            ;\n        $pgl_ddl_deploy_sql$,\n          p_pid := ?,\n          p_set_config_id := 3,\n          p_queue_subscriber_failures := false,\n          p_signal_blocking_subscriber_sessions := NULL,\n          p_lock_timeout := 3000,\n          p_driver := ?\n        );\n        "
  {test4}               | Q            | "\n        SELECT pgl_ddl_deploy.subscriber_command\n        (\n          p_provider_name := ?,\n          p_set_name := ARRAY['test4'],\n          p_nspname := NULL,\n          p_relname := NULL,\n          p_ddl_sql_sent := $pgl_ddl_deploy_sql$DROP TABLE foobar.foo CASCADE;$pgl_ddl_deploy_sql$,\n          p_full_ddl := $pgl_ddl_deploy_sql$\n        --Be sure to use provider's search_path for SQL environment consistency\n            SET SEARCH_PATH TO \"$user\", public;\n\n            DROP TABLE foobar.foo CASCADE;\n            ;\n        $pgl_ddl_deploy_sql$,\n          p_pid := ?,\n          p_set_config_id := 4,\n          p_queue_subscriber_failures := false,\n          p_signal_blocking_subscriber_sessions := NULL,\n          p_lock_timeout := 3000,\n          p_driver := ?\n        );\n        "
- {test5}               | Q            | "\n        SELECT p [too-long-redacted] ver := ?\n        );\n        "
- {test6}               | Q            | "\n        SELECT p [too-long-redacted] ver := ?\n        );\n        "
- {test7}               | Q            | "\n        SELECT pgl_ddl_deploy.subscriber_command\n        (\n          p_provider_name := ?,\n          p_set_name := ARRAY['test7'],\n          p_nspname := NULL,\n          p_relname := NULL,\n          p_ddl_sql_sent := $pgl_ddl_deploy_sql$DROP TABLE foobar.foo CASCADE;$pgl_ddl_deploy_sql$,\n          p_full_ddl := $pgl_ddl_deploy_sql$\n        --Be sure to use provider's search_path for SQL environment consistency\n            SET SEARCH_PATH TO \"$user\", public;\n\n            DROP TABLE foobar.foo CASCADE;\n            ;\n        $pgl_ddl_deploy_sql$,\n          p_pid := ?,\n          p_set_config_id := 7,\n          p_queue_subscriber_failures := false,\n          p_signal_blocking_subscriber_sessions := NULL,\n          p_lock_timeout := 3000,\n          p_driver := ?\n        );\n        "
- {test8}               | Q            | "\n        SELECT pgl_ddl_deploy.subscriber_command\n        (\n          p_provider_name := ?,\n          p_set_name := ARRAY['test8'],\n          p_nspname := NULL,\n          p_relname := NULL,\n          p_ddl_sql_sent := $pgl_ddl_deploy_sql$DROP TABLE foobar.foo CASCADE;$pgl_ddl_deploy_sql$,\n          p_full_ddl := $pgl_ddl_deploy_sql$\n        --Be sure to use provider's search_path for SQL environment consistency\n            SET SEARCH_PATH TO \"$user\", public;\n\n            DROP TABLE foobar.foo CASCADE;\n            ;\n        $pgl_ddl_deploy_sql$,\n          p_pid := ?,\n          p_set_config_id := 8,\n          p_queue_subscriber_failures := false,\n          p_signal_blocking_subscriber_sessions := NULL,\n          p_lock_timeout := 3000,\n          p_driver := ?\n        );\n        "
  {test1}               | Q            | "\n        SELECT p [too-long-redacted] ver := ?\n        );\n        "
  {test2}               | Q            | "\n        SELECT p [too-long-redacted] ver := ?\n        );\n        "
  {test3}               | Q            | "\n        SELECT pgl_ddl_deploy.subscriber_command\n        (\n          p_provider_name := ?,\n          p_set_name := ARRAY['test3'],\n          p_nspname := NULL,\n          p_relname := NULL,\n          p_ddl_sql_sent := $pgl_ddl_deploy_sql$DROP TABLE foo CASCADE;$pgl_ddl_deploy_sql$,\n          p_full_ddl := $pgl_ddl_deploy_sql$\n        --Be sure to use provider's search_path for SQL environment consistency\n            SET SEARCH_PATH TO \"$user\", public;\n\n            DROP TABLE foo CASCADE;\n            ;\n        $pgl_ddl_deploy_sql$,\n          p_pid := ?,\n          p_set_config_id := 3,\n          p_queue_subscriber_failures := false,\n          p_signal_blocking_subscriber_sessions := NULL,\n          p_lock_timeout := 3000,\n          p_driver := ?\n        );\n        "
@@ -436,7 +432,7 @@
  {test_ddl_only}       | Q            | "\n        SELECT pgl_ddl_deploy.subscriber_command\n        (\n          p_provider_name := ?,\n          p_set_name := ARRAY['test_ddl_only'],\n          p_nspname := 'duper',\n          p_relname := 'man',\n          p_ddl_sql_sent := $pgl_ddl_deploy_sql$ALTER TABLE duper.man ADD COLUMN foo text;$pgl_ddl_deploy_sql$,\n          p_full_ddl := $pgl_ddl_deploy_sql$\n        --Be sure to use provider's search_path for SQL environment consistency\n            SET SEARCH_PATH TO '';\n\n            ALTER TABLE duper.man ADD COLUMN foo text;\n            ;\n        $pgl_ddl_deploy_sql$,\n          p_pid := ?,\n          p_set_config_id := 20,\n          p_queue_subscriber_failures := false,\n          p_signal_blocking_subscriber_sessions := NULL,\n          p_lock_timeout := 3000,\n          p_driver := ?\n        );\n        "
  {test_ddl_only}       | Q            | "\n        SELECT pgl_ddl_deploy.subscriber_command\n        (\n          p_provider_name := ?,\n          p_set_name := ARRAY['test_ddl_only'],\n          p_nspname := NULL,\n          p_relname := NULL,\n          p_ddl_sql_sent := $pgl_ddl_deploy_sql$DROP TABLE super.man CASCADE;$pgl_ddl_deploy_sql$,\n          p_full_ddl := $pgl_ddl_deploy_sql$\n        --Be sure to use provider's search_path for SQL environment consistency\n            SET SEARCH_PATH TO '';\n\n            DROP TABLE super.man CASCADE;\n            ;\n        $pgl_ddl_deploy_sql$,\n          p_pid := ?,\n          p_set_config_id := 19,\n          p_queue_subscriber_failures := false,\n          p_signal_blocking_subscriber_sessions := NULL,\n          p_lock_timeout := 3000,\n          p_driver := ?\n        );\n        "
  {test_ddl_only}       | Q            | "\n        SELECT pgl_ddl_deploy.subscriber_command\n        (\n          p_provider_name := ?,\n          p_set_name := ARRAY['test_ddl_only'],\n          p_nspname := NULL,\n          p_relname := NULL,\n          p_ddl_sql_sent := $pgl_ddl_deploy_sql$DROP TABLE duper.man;$pgl_ddl_deploy_sql$,\n          p_full_ddl := $pgl_ddl_deploy_sql$\n        --Be sure to use provider's search_path for SQL environment consistency\n            SET SEARCH_PATH TO '';\n\n            DROP TABLE duper.man;\n            ;\n        $pgl_ddl_deploy_sql$,\n          p_pid := ?,\n          p_set_config_id := 20,\n          p_queue_subscriber_failures := false,\n          p_signal_blocking_subscriber_sessions := NULL,\n          p_lock_timeout := 3000,\n          p_driver := ?\n        );\n        "
-(432 rows)
+(428 rows)

 DO $$
 DECLARE v_ct INT;
diff -U3 /<<PKGBUILDDIR>>/expected/35_edges.out /<<PKGBUILDDIR>>/results/35_edges.out
--- /<<PKGBUILDDIR>>/expected/35_edges.out	2023-11-29 20:12:27.000000000 +0000
+++ /<<PKGBUILDDIR>>/results/35_edges.out	2026-03-14 17:46:29.837421214 +0000
@@ -20,4 +20,8 @@
 (10 rows)

 DROP TABLE foobar.foo CASCADE;
+WARNING:  Unhandled deployment logged in pgl_ddl_deploy.unhandled
+WARNING:  Unhandled deployment logged in pgl_ddl_deploy.unhandled
+WARNING:  Unhandled deployment logged in pgl_ddl_deploy.unhandled
+WARNING:  Unhandled deployment logged in pgl_ddl_deploy.unhandled
 DROP TABLE foo CASCADE;
diff -U3 /<<PKGBUILDDIR>>/expected/36_ignored.out /<<PKGBUILDDIR>>/results/36_ignored.out
--- /<<PKGBUILDDIR>>/expected/36_ignored.out	2023-11-29 20:12:27.000000000 +0000
+++ /<<PKGBUILDDIR>>/results/36_ignored.out	2026-03-14 17:46:29.885421574 +0000
@@ -8,17 +8,17 @@
 SELECT 1 AS myfield;
 DROP TABLE foo;
 SELECT set_name, ddl_sql_raw, ddl_sql_sent FROM pgl_ddl_deploy.events ORDER BY id DESC LIMIT 10;
- set_name |          ddl_sql_raw           |          ddl_sql_sent
-----------+--------------------------------+--------------------------------
- test4    | DROP TABLE foo CASCADE;        | DROP TABLE foo CASCADE;
- test3    | DROP TABLE foo CASCADE;        | DROP TABLE foo CASCADE;
- test2    | DROP TABLE foo CASCADE;        | DROP TABLE foo CASCADE;
- test1    | DROP TABLE foo CASCADE;        | DROP TABLE foo CASCADE;
- test8    | DROP TABLE foobar.foo CASCADE; | DROP TABLE foobar.foo CASCADE;
- test7    | DROP TABLE foobar.foo CASCADE; | DROP TABLE foobar.foo CASCADE;
- test6    | DROP TABLE foobar.foo CASCADE; | DROP TABLE foobar.foo CASCADE;
- test5    | DROP TABLE foobar.foo CASCADE; | DROP TABLE foobar.foo CASCADE;
- test4    | DROP TABLE foobar.foo CASCADE; | DROP TABLE foobar.foo CASCADE;
- test3    | DROP TABLE foobar.foo CASCADE; | DROP TABLE foobar.foo CASCADE;
+ set_name |                           ddl_sql_raw                            |                           ddl_sql_sent
+----------+------------------------------------------------------------------+------------------------------------------------------------------
+ test4    | DROP TABLE foo CASCADE;                                          | DROP TABLE foo CASCADE;
+ test3    | DROP TABLE foo CASCADE;                                          | DROP TABLE foo CASCADE;
+ test2    | DROP TABLE foo CASCADE;                                          | DROP TABLE foo CASCADE;
+ test1    | DROP TABLE foo CASCADE;                                          | DROP TABLE foo CASCADE;
+ test4    | DROP TABLE foobar.foo CASCADE;                                   | DROP TABLE foobar.foo CASCADE;
+ test3    | DROP TABLE foobar.foo CASCADE;                                   | DROP TABLE foobar.foo CASCADE;
+ test2    | DROP TABLE foobar.foo CASCADE;                                   | DROP TABLE foobar.foo CASCADE;
+ test1    | DROP TABLE foobar.foo CASCADE;                                   | DROP TABLE foobar.foo CASCADE;
+ test8    | ALTER TABLE foobar.foo ADD COLUMN foo_id INT REFERENCES foo(id); | ALTER TABLE foobar.foo ADD COLUMN foo_id INT REFERENCES foo(id);
+ test7    | ALTER TABLE foobar.foo ADD COLUMN foo_id INT REFERENCES foo(id); | ALTER TABLE foobar.foo ADD COLUMN foo_id INT REFERENCES foo(id);
 (10 rows)

diff -U3 /<<PKGBUILDDIR>>/expected/37_unsupported.out /<<PKGBUILDDIR>>/results/37_unsupported.out
--- /<<PKGBUILDDIR>>/expected/37_unsupported.out	2023-11-29 20:12:27.000000000 +0000
+++ /<<PKGBUILDDIR>>/results/37_unsupported.out	2026-03-14 17:46:29.929421906 +0000
@@ -8,37 +8,37 @@
 WARNING:  Unhandled deployment logged in pgl_ddl_deploy.unhandled
 WARNING:  Unhandled deployment logged in pgl_ddl_deploy.unhandled
 SELECT set_name, ddl_sql_raw, ddl_sql_sent FROM pgl_ddl_deploy.events ORDER BY id DESC LIMIT 10;
- set_name |          ddl_sql_raw           |          ddl_sql_sent
-----------+--------------------------------+--------------------------------
- test4    | DROP TABLE foo CASCADE;        | DROP TABLE foo CASCADE;
- test3    | DROP TABLE foo CASCADE;        | DROP TABLE foo CASCADE;
- test2    | DROP TABLE foo CASCADE;        | DROP TABLE foo CASCADE;
- test1    | DROP TABLE foo CASCADE;        | DROP TABLE foo CASCADE;
- test8    | DROP TABLE foobar.foo CASCADE; | DROP TABLE foobar.foo CASCADE;
- test7    | DROP TABLE foobar.foo CASCADE; | DROP TABLE foobar.foo CASCADE;
- test6    | DROP TABLE foobar.foo CASCADE; | DROP TABLE foobar.foo CASCADE;
- test5    | DROP TABLE foobar.foo CASCADE; | DROP TABLE foobar.foo CASCADE;
- test4    | DROP TABLE foobar.foo CASCADE; | DROP TABLE foobar.foo CASCADE;
- test3    | DROP TABLE foobar.foo CASCADE; | DROP TABLE foobar.foo CASCADE;
+ set_name |                           ddl_sql_raw                            |                           ddl_sql_sent
+----------+------------------------------------------------------------------+------------------------------------------------------------------
+ test4    | DROP TABLE foo CASCADE;                                          | DROP TABLE foo CASCADE;
+ test3    | DROP TABLE foo CASCADE;                                          | DROP TABLE foo CASCADE;
+ test2    | DROP TABLE foo CASCADE;                                          | DROP TABLE foo CASCADE;
+ test1    | DROP TABLE foo CASCADE;                                          | DROP TABLE foo CASCADE;
+ test4    | DROP TABLE foobar.foo CASCADE;                                   | DROP TABLE foobar.foo CASCADE;
+ test3    | DROP TABLE foobar.foo CASCADE;                                   | DROP TABLE foobar.foo CASCADE;
+ test2    | DROP TABLE foobar.foo CASCADE;                                   | DROP TABLE foobar.foo CASCADE;
+ test1    | DROP TABLE foobar.foo CASCADE;                                   | DROP TABLE foobar.foo CASCADE;
+ test8    | ALTER TABLE foobar.foo ADD COLUMN foo_id INT REFERENCES foo(id); | ALTER TABLE foobar.foo ADD COLUMN foo_id INT REFERENCES foo(id);
+ test7    | ALTER TABLE foobar.foo ADD COLUMN foo_id INT REFERENCES foo(id); | ALTER TABLE foobar.foo ADD COLUMN foo_id INT REFERENCES foo(id);
 (10 rows)

 SELECT set_name, ddl_sql_raw, command_tag, reason FROM pgl_ddl_deploy.unhandled ORDER BY id DESC LIMIT 10;
- set_name |                                 ddl_sql_raw                                 |   command_tag   |          reason
-----------+-----------------------------------------------------------------------------+-----------------+--------------------------
- test4    | CREATE TABLE foo AS                                                        +| CREATE TABLE AS | unsupported_command
-          | SELECT 1 AS myfield;                                                        |                 |
- test3    | CREATE TABLE foo AS                                                        +| CREATE TABLE AS | unsupported_command
-          | SELECT 1 AS myfield;                                                        |                 |
- test2    | CREATE TABLE foo AS                                                        +| CREATE TABLE AS | unsupported_command
-          | SELECT 1 AS myfield;                                                        |                 |
- test1    | CREATE TABLE foo AS                                                        +| CREATE TABLE AS | unsupported_command
-          | SELECT 1 AS myfield;                                                        |                 |
- test8    | DROP TABLE foo, foobar.foo CASCADE;                                         | DROP TABLE      | mixed_objects
- test7    | DROP TABLE foo, foobar.foo CASCADE;                                         | DROP TABLE      | mixed_objects
- test6    | DROP TABLE foo, foobar.foo CASCADE;                                         | DROP TABLE      | mixed_objects
- test5    | DROP TABLE foo, foobar.foo CASCADE;                                         | DROP TABLE      | mixed_objects
- test8    | CREATE TABLE foobar.foo(id int primary key); DROP TABLE foobar.foo CASCADE; | CREATE TABLE    | rejected_multi_statement
- test6    | CREATE TABLE foobar.foo(id int primary key); DROP TABLE foobar.foo CASCADE; | CREATE TABLE    | rejected_multi_statement
+ set_name |             ddl_sql_raw             |   command_tag   |       reason
+----------+-------------------------------------+-----------------+---------------------
+ test4    | CREATE TABLE foo AS                +| CREATE TABLE AS | unsupported_command
+          | SELECT 1 AS myfield;                |                 |
+ test3    | CREATE TABLE foo AS                +| CREATE TABLE AS | unsupported_command
+          | SELECT 1 AS myfield;                |                 |
+ test2    | CREATE TABLE foo AS                +| CREATE TABLE AS | unsupported_command
+          | SELECT 1 AS myfield;                |                 |
+ test1    | CREATE TABLE foo AS                +| CREATE TABLE AS | unsupported_command
+          | SELECT 1 AS myfield;                |                 |
+ test8    | DROP TABLE foobar.foo CASCADE;      | DROP TABLE      | mixed_objects
+ test7    | DROP TABLE foobar.foo CASCADE;      | DROP TABLE      | mixed_objects
+ test6    | DROP TABLE foobar.foo CASCADE;      | DROP TABLE      | mixed_objects
+ test5    | DROP TABLE foobar.foo CASCADE;      | DROP TABLE      | mixed_objects
+ test8    | DROP TABLE foo, foobar.foo CASCADE; | DROP TABLE      | mixed_objects
+ test7    | DROP TABLE foo, foobar.foo CASCADE; | DROP TABLE      | mixed_objects
 (10 rows)

 SELECT 1 AS myfield INTO foobar.foo;
@@ -51,18 +51,18 @@
 WARNING:  Unhandled deployment logged in pgl_ddl_deploy.unhandled
 WARNING:  Unhandled deployment logged in pgl_ddl_deploy.unhandled
 SELECT set_name, ddl_sql_raw, ddl_sql_sent FROM pgl_ddl_deploy.events ORDER BY id DESC LIMIT 10;
- set_name |          ddl_sql_raw           |          ddl_sql_sent
-----------+--------------------------------+--------------------------------
- test4    | DROP TABLE foo CASCADE;        | DROP TABLE foo CASCADE;
- test3    | DROP TABLE foo CASCADE;        | DROP TABLE foo CASCADE;
- test2    | DROP TABLE foo CASCADE;        | DROP TABLE foo CASCADE;
- test1    | DROP TABLE foo CASCADE;        | DROP TABLE foo CASCADE;
- test8    | DROP TABLE foobar.foo CASCADE; | DROP TABLE foobar.foo CASCADE;
- test7    | DROP TABLE foobar.foo CASCADE; | DROP TABLE foobar.foo CASCADE;
- test6    | DROP TABLE foobar.foo CASCADE; | DROP TABLE foobar.foo CASCADE;
- test5    | DROP TABLE foobar.foo CASCADE; | DROP TABLE foobar.foo CASCADE;
- test4    | DROP TABLE foobar.foo CASCADE; | DROP TABLE foobar.foo CASCADE;
- test3    | DROP TABLE foobar.foo CASCADE; | DROP TABLE foobar.foo CASCADE;
+ set_name |                           ddl_sql_raw                            |                           ddl_sql_sent
+----------+------------------------------------------------------------------+------------------------------------------------------------------
+ test4    | DROP TABLE foo CASCADE;                                          | DROP TABLE foo CASCADE;
+ test3    | DROP TABLE foo CASCADE;                                          | DROP TABLE foo CASCADE;
+ test2    | DROP TABLE foo CASCADE;                                          | DROP TABLE foo CASCADE;
+ test1    | DROP TABLE foo CASCADE;                                          | DROP TABLE foo CASCADE;
+ test4    | DROP TABLE foobar.foo CASCADE;                                   | DROP TABLE foobar.foo CASCADE;
+ test3    | DROP TABLE foobar.foo CASCADE;                                   | DROP TABLE foobar.foo CASCADE;
+ test2    | DROP TABLE foobar.foo CASCADE;                                   | DROP TABLE foobar.foo CASCADE;
+ test1    | DROP TABLE foobar.foo CASCADE;                                   | DROP TABLE foobar.foo CASCADE;
+ test8    | ALTER TABLE foobar.foo ADD COLUMN foo_id INT REFERENCES foo(id); | ALTER TABLE foobar.foo ADD COLUMN foo_id INT REFERENCES foo(id);
+ test7    | ALTER TABLE foobar.foo ADD COLUMN foo_id INT REFERENCES foo(id); | ALTER TABLE foobar.foo ADD COLUMN foo_id INT REFERENCES foo(id);
 (10 rows)

 SELECT set_name, ddl_sql_raw, command_tag, reason FROM pgl_ddl_deploy.unhandled ORDER BY id DESC LIMIT 10;
diff -U3 /<<PKGBUILDDIR>>/expected/52_sub_retries.out /<<PKGBUILDDIR>>/results/52_sub_retries.out
--- /<<PKGBUILDDIR>>/expected/52_sub_retries.out	2023-11-29 20:12:27.000000000 +0000
+++ /<<PKGBUILDDIR>>/results/52_sub_retries.out	2026-03-14 17:46:30.893429164 +0000
@@ -236,10 +236,6 @@
  {test2}               | Q            | "\n        SELECT p [too-long-redacted] ver := ?\n        );\n        "
  {test3}               | Q            | "\n        SELECT pgl_ddl_deploy.subscriber_command\n        (\n          p_provider_name := ?,\n          p_set_name := ARRAY['test3'],\n          p_nspname := NULL,\n          p_relname := NULL,\n          p_ddl_sql_sent := $pgl_ddl_deploy_sql$DROP TABLE foobar.foo CASCADE;$pgl_ddl_deploy_sql$,\n          p_full_ddl := $pgl_ddl_deploy_sql$\n        --Be sure to use provider's search_path for SQL environment consistency\n            SET SEARCH_PATH TO \"$user\", public;\n\n            DROP TABLE foobar.foo CASCADE;\n            ;\n        $pgl_ddl_deploy_sql$,\n          p_pid := ?,\n          p_set_config_id := 3,\n          p_queue_subscriber_failures := false,\n          p_signal_blocking_subscriber_sessions := NULL,\n          p_lock_timeout := 3000,\n          p_driver := ?\n        );\n        "
  {test4}               | Q            | "\n        SELECT pgl_ddl_deploy.subscriber_command\n        (\n          p_provider_name := ?,\n          p_set_name := ARRAY['test4'],\n          p_nspname := NULL,\n          p_relname := NULL,\n          p_ddl_sql_sent := $pgl_ddl_deploy_sql$DROP TABLE foobar.foo CASCADE;$pgl_ddl_deploy_sql$,\n          p_full_ddl := $pgl_ddl_deploy_sql$\n        --Be sure to use provider's search_path for SQL environment consistency\n            SET SEARCH_PATH TO \"$user\", public;\n\n            DROP TABLE foobar.foo CASCADE;\n            ;\n        $pgl_ddl_deploy_sql$,\n          p_pid := ?,\n          p_set_config_id := 4,\n          p_queue_subscriber_failures := false,\n          p_signal_blocking_subscriber_sessions := NULL,\n          p_lock_timeout := 3000,\n          p_driver := ?\n        );\n        "
- {test5}               | Q            | "\n        SELECT p [too-long-redacted] ver := ?\n        );\n        "
- {test6}               | Q            | "\n        SELECT p [too-long-redacted] ver := ?\n        );\n        "
- {test7}               | Q            | "\n        SELECT pgl_ddl_deploy.subscriber_command\n        (\n          p_provider_name := ?,\n          p_set_name := ARRAY['test7'],\n          p_nspname := NULL,\n          p_relname := NULL,\n          p_ddl_sql_sent := $pgl_ddl_deploy_sql$DROP TABLE foobar.foo CASCADE;$pgl_ddl_deploy_sql$,\n          p_full_ddl := $pgl_ddl_deploy_sql$\n        --Be sure to use provider's search_path for SQL environment consistency\n            SET SEARCH_PATH TO \"$user\", public;\n\n            DROP TABLE foobar.foo CASCADE;\n            ;\n        $pgl_ddl_deploy_sql$,\n          p_pid := ?,\n          p_set_config_id := 7,\n          p_queue_subscriber_failures := false,\n          p_signal_blocking_subscriber_sessions := NULL,\n          p_lock_timeout := 3000,\n          p_driver := ?\n        );\n        "
- {test8}               | Q            | "\n        SELECT pgl_ddl_deploy.subscriber_command\n        (\n          p_provider_name := ?,\n          p_set_name := ARRAY['test8'],\n          p_nspname := NULL,\n          p_relname := NULL,\n          p_ddl_sql_sent := $pgl_ddl_deploy_sql$DROP TABLE foobar.foo CASCADE;$pgl_ddl_deploy_sql$,\n          p_full_ddl := $pgl_ddl_deploy_sql$\n        --Be sure to use provider's search_path for SQL environment consistency\n            SET SEARCH_PATH TO \"$user\", public;\n\n            DROP TABLE foobar.foo CASCADE;\n            ;\n        $pgl_ddl_deploy_sql$,\n          p_pid := ?,\n          p_set_config_id := 8,\n          p_queue_subscriber_failures := false,\n          p_signal_blocking_subscriber_sessions := NULL,\n          p_lock_timeout := 3000,\n          p_driver := ?\n        );\n        "
  {test1}               | Q            | "\n        SELECT p [too-long-redacted] ver := ?\n        );\n        "
  {test2}               | Q            | "\n        SELECT p [too-long-redacted] ver := ?\n        );\n        "
  {test3}               | Q            | "\n        SELECT pgl_ddl_deploy.subscriber_command\n        (\n          p_provider_name := ?,\n          p_set_name := ARRAY['test3'],\n          p_nspname := NULL,\n          p_relname := NULL,\n          p_ddl_sql_sent := $pgl_ddl_deploy_sql$DROP TABLE foo CASCADE;$pgl_ddl_deploy_sql$,\n          p_full_ddl := $pgl_ddl_deploy_sql$\n        --Be sure to use provider's search_path for SQL environment consistency\n            SET SEARCH_PATH TO \"$user\", public;\n\n            DROP TABLE foo CASCADE;\n            ;\n        $pgl_ddl_deploy_sql$,\n          p_pid := ?,\n          p_set_config_id := 3,\n          p_queue_subscriber_failures := false,\n          p_signal_blocking_subscriber_sessions := NULL,\n          p_lock_timeout := 3000,\n          p_driver := ?\n        );\n        "
@@ -436,7 +432,7 @@
  {test_ddl_only}       | Q            | "\n        SELECT pgl_ddl_deploy.subscriber_command\n        (\n          p_provider_name := ?,\n          p_set_name := ARRAY['test_ddl_only'],\n          p_nspname := 'duper',\n          p_relname := 'man',\n          p_ddl_sql_sent := $pgl_ddl_deploy_sql$ALTER TABLE duper.man ADD COLUMN foo text;$pgl_ddl_deploy_sql$,\n          p_full_ddl := $pgl_ddl_deploy_sql$\n        --Be sure to use provider's search_path for SQL environment consistency\n            SET SEARCH_PATH TO '';\n\n            ALTER TABLE duper.man ADD COLUMN foo text;\n            ;\n        $pgl_ddl_deploy_sql$,\n          p_pid := ?,\n          p_set_config_id := 20,\n          p_queue_subscriber_failures := false,\n          p_signal_blocking_subscriber_sessions := NULL,\n          p_lock_timeout := 3000,\n          p_driver := ?\n        );\n        "
  {test_ddl_only}       | Q            | "\n        SELECT pgl_ddl_deploy.subscriber_command\n        (\n          p_provider_name := ?,\n          p_set_name := ARRAY['test_ddl_only'],\n          p_nspname := NULL,\n          p_relname := NULL,\n          p_ddl_sql_sent := $pgl_ddl_deploy_sql$DROP TABLE super.man CASCADE;$pgl_ddl_deploy_sql$,\n          p_full_ddl := $pgl_ddl_deploy_sql$\n        --Be sure to use provider's search_path for SQL environment consistency\n            SET SEARCH_PATH TO '';\n\n            DROP TABLE super.man CASCADE;\n            ;\n        $pgl_ddl_deploy_sql$,\n          p_pid := ?,\n          p_set_config_id := 19,\n          p_queue_subscriber_failures := false,\n          p_signal_blocking_subscriber_sessions := NULL,\n          p_lock_timeout := 3000,\n          p_driver := ?\n        );\n        "
  {test_ddl_only}       | Q            | "\n        SELECT pgl_ddl_deploy.subscriber_command\n        (\n          p_provider_name := ?,\n          p_set_name := ARRAY['test_ddl_only'],\n          p_nspname := NULL,\n          p_relname := NULL,\n          p_ddl_sql_sent := $pgl_ddl_deploy_sql$DROP TABLE duper.man;$pgl_ddl_deploy_sql$,\n          p_full_ddl := $pgl_ddl_deploy_sql$\n        --Be sure to use provider's search_path for SQL environment consistency\n            SET SEARCH_PATH TO '';\n\n            DROP TABLE duper.man;\n            ;\n        $pgl_ddl_deploy_sql$,\n          p_pid := ?,\n          p_set_config_id := 20,\n          p_queue_subscriber_failures := false,\n          p_signal_blocking_subscriber_sessions := NULL,\n          p_lock_timeout := 3000,\n          p_driver := ?\n        );\n        "
-(432 rows)
+(428 rows)

 DO $$
 DECLARE v_ct INT;
### End 17 installcheck (FAILED with exit code 1) ###
make[1]: *** [debian/rules:4: override_dh_pgxs_test] Error 1
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
make: *** [debian/rules:9: binary] Error 2
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
--------------------------------------------------------------------------------

#1131248#10
Date:
2026-03-19 11:51:30 UTC
From:
To:
Re: Santiago Vila

The package has been removed from unstable already.

Christoph

#1131248#15
Date:
2026-03-19 12:07:27 UTC
From:
To:
I know, but packages in trixie still must build in trixie, so closing
this bug does not help anybody and reduces the visibility of a bug
that we should still fix to comply with DFSG. Please reconsider.

Thanks.

#1131248#18
Date:
2026-03-19 12:09:43 UTC
From:
To:
Re: Santiago Vila

When a package gets removed, all bugs get closed in a +rm version.
This is just doing that. Version-tracking will still show the bug as
open in trixie.

The package was removed because it's dead upstream. I do not plan to
spend any more time on it, sorry.

Christoph

#1131248#23
Date:
2026-03-19 12:27:20 UTC
From:
To:
Yes, I know ftpmasters usually do that, but it could be argued that
doing that is wrong when the bug is a FTBFS bug in stable, because we
always want to build stable from source regardless of upstream
support.

If it's unsupported in trixie, why do we still include it in trixie?
Would not be better to reassign the bug to ftp.debian.org so that it's
removed in the next point release?

Thanks.

#1131248#26
Date:
2026-03-19 12:32:21 UTC
From:
To:
Re: Santiago Vila

The package is probably not really broken, just the tests exploding in
a way that is hard to debug. If you rebuild with nocheck, it will
succeed (and probably work for users).

Christoph

#1131248#31
Date:
2026-03-19 12:33:27 UTC
From:
To:
Hi,

I don't think anybody said it was unsupported. The FTBFS you filed
seems to show some drift/flakeyness in the test suite while the code
actually builds fine.

If you find a real bug in the way pgl-ddl-deploy works, I think we are
happy to take a look at it.


Michael

#1131248#36
Date:
2026-03-19 14:22:19 UTC
From:
To:
Ok, for completeness:

This worked ok in Debian 13.2 and it started to fail in Debian 13.3.

Based on the dates, this seems to be triggered by the upgrade in
trixie from postgresql 17.6-0+deb13u1 to 17.7-0+deb13u1).

Also, to be sure, I've now built the package 100 times and it failed
100 times, so it's not flaky. It seems to always fail in the same way.

So I guess it falls under the category of drift (as in "the real
output does not match anymore the expected output"), but we still
don't know why.

Well, is not that precisely what build-time tests are for? They
indicate potential bugs in the code, but until somebody looks at them,
we will never know if it's a bug in the code or a bug in the tests.

In my experience, a package can be completely broken in trixie for a
long time without anybody noticing. For example, bug #1128265 in
policyd-rate-limit comes to mind. In this case the package had no
tests at all, which surely helped the bug to remain unnoticed.

Thanks.