pg.ddx.io  pgsql-hackers@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Michael Banck <mbanck@gmx.net>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Michael Paquier <michael@paquier.xyz>
Cc: Postgres hackers <pgsql-hackers@lists.postgresql.org>
Subject: Re: Safeguards against incorrect fd flags for fsync()
Date: Wed, 11 Jun 2025 21:24:24 +0200
Message-ID: <6849d7e8.5d0a0220.3dbe66.c4e1@mx.google.com> (raw)
In-Reply-To: <947174.1749604175@sss.pgh.pa.us>
References: <20191009062640.GB21379@paquier.xyz>
	<68480868.5d0a0220.1e214d.68a6@mx.google.com>
	<aEjGRrGNoLewSlRG@paquier.xyz>
	<947174.1749604175@sss.pgh.pa.us>

On Tue, Jun 10, 2025 at 09:09:35PM -0400, Tom Lane wrote:
> Still, I'd like to be closer to having a working Hurd buildfarm member
> before we take a portability risk that would only benefit Hurd.

I've spent some more time on this, here's the status beyond make check:

1. The pg_stat_statements entry_timestamp test fails, the
regression.diffs is attached. I ran some of test SQL manually, and it
seems the current low timer resolution leads to most/all queries
executed in it to have a plan/exec time of exactly 0, thus tripping up
the test.

2. The isolation tests pass except for the The stats isolation test,
again timer resolution issues, the regression.diffs is attached as well.

From a quick look, I don't think there's a reasonable way to change
those tests so that they would pass on 10ms timers, timing is pretty
badly broken. To illustrate:

|regression=# \timing on
|Timing is on.
|regression=# SELECT 1;
| ?column? 
|----------
|        1
|(1 row)
|
|Time: 10.000 ms
|regression=# SELECT pg_sleep(0.011);
| pg_sleep 
|----------
| 
|(1 row)
|
|Time: 20.000 ms
|regression=# SELECT pg_sleep(0.021);
| pg_sleep 
|----------
| 
|(1 row)
|
|Time: 30.000 ms
|regression=# \timing off
|Timing is off.
|regression=# EXPLAIN (ANALYZE) SELECT 1;
|                                      QUERY PLAN                                       
|---------------------------------------------------------------------------------------
| Result  (cost=0.00..0.01 rows=1 width=4) (actual time=0.000..0.000
|rows=1.00 loops=1)
| Planning Time: 0.000 ms
| Execution Time: 0.000 ms
|(3 rows)

However otherwise, the buildfarm client completes for master if I
disable those (pg_stat_statments/entry_timestamp and
isolation_tests/stats) tests for now.

So it seems the low-resolution timer is the only functional issue right
now. I upgraded my VM to current Debian unstable, but unfortunately that
did not increase the timer resolution is hoped, maybe some more pieces
in glibc are missing, I checked in on that[1]. In any case, they are
actively working on this.

However, there is another caveat:

Running "make check" manually only sometimes hangs the VM (without any
output anywhere), while running it via the buildfarm client reliably
makes it hang each time, so I added --tests=test_setup as a work-around
to test the other stages. I have not found a reason for this yet, I will
try to get a serial console working for the VM next, maybe that will
show some helpful info.

Here's a transcript of a builfarm client run using a patched source
tree:

|hurd@debian:~/build-farm-19.1$ uname -a
|GNU debian 0.9 GNU-Mach 1.8+git20230526-486/Hurd-0.9 i686-AT386 GNU
|hurd@debian:~/build-farm-19.1$ LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 ./run_build.pl --test --config build-farm.conf --from-source=../postgres/ --tests=test_setup HEAD
|Wed Jun 11 12:41:06 2025: buildfarm run for hurd:HEAD starting
|hurd:HEAD          [12:41:07] running configure ...
|hurd:HEAD          [12:41:09] running build ...
|hurd:HEAD          [12:48:49] running basic regression tests ...
|hurd:HEAD          [12:49:08] running make contrib ...
|hurd:HEAD          [12:50:00] running make testmodules ...
|hurd:HEAD          [12:50:11] running install ...
|hurd:HEAD          [12:50:27] running make contrib install ...
|hurd:HEAD          [12:50:31] running testmodules install ...
|hurd:HEAD          [12:50:34] running make check miscellaneous modules ...
|hurd:HEAD          [12:51:46] setting up db cluster (C)...
|hurd:HEAD          [12:51:49] starting db (C)...
|hurd:HEAD          [12:51:49] running installcheck (C)...
|hurd:HEAD          [12:51:50] restarting db (C)...
|hurd:HEAD          [12:51:53] running make isolation check ...
|hurd:HEAD          [12:53:50] restarting db (C)...
|hurd:HEAD          [12:53:53] running make PL installcheck (C)...
|hurd:HEAD          [12:54:01] restarting db (C)...
|hurd:HEAD          [12:54:03] running make contrib installcheck (C)...
|hurd:HEAD          [12:55:57] restarting db (C)...
|hurd:HEAD          [12:55:59] running make test-modules installcheck (C)...
|hurd:HEAD          [12:56:41] stopping db (C)...
|hurd:HEAD          [12:56:55] running make ecpg check ...
|hurd:HEAD          [12:57:23] OK
|Branch: HEAD
|All stages succeeded


Michael

[1] https://lists.gnu.org/archive/html/bug-hurd/2025-06/msg00003.html
diff -U3 /home/demo/postgres/contrib/pg_stat_statements/expected/entry_timestamp.out /home/demo/postgres/contrib/pg_stat_statements/results/entry_timestamp.out
--- /home/demo/postgres/contrib/pg_stat_statements/expected/entry_timestamp.out 2025-06-11 09:06:33.000000000 +0100
+++ /home/demo/postgres/contrib/pg_stat_statements/results/entry_timestamp.out  2025-06-11 11:14:34.000000000 +0100
@@ -45,7 +45,7 @@
 WHERE query LIKE '%STMTTS%';
  total | minmax_plan_zero | minmax_exec_zero | minmax_stats_since_after_ref | stats_since_after_ref
 -------+------------------+------------------+------------------------------+-----------------------
-     2 |                0 |                0 |                            0 |                     0
+     2 |                2 |                0 |                            0 |                     0
 (1 row)

 -- Perform single min/max reset
@@ -71,7 +71,7 @@
 WHERE query LIKE '%STMTTS%';
  total | minmax_plan_zero | minmax_exec_zero | minmax_stats_since_after_ref | stats_since_after_ref
 -------+------------------+------------------+------------------------------+-----------------------
-     2 |                1 |                1 |                            1 |                     0
+     2 |                2 |                1 |                            1 |                     0
 (1 row)

 -- check minmax reset timestamps
@@ -147,7 +147,7 @@
 WHERE query LIKE '%STMTTS%';
  total | minmax_exec_zero | minmax_ts_after_ref | stats_since_after_ref
 -------+------------------+---------------------+-----------------------
-     2 |                1 |                   2 |                     0
+     2 |                2 |                   2 |                     0
 (1 row)
diff -U3 /home/demo/postgres/src/test/isolation/expected/stats_1.out /home/demo/postgres/src/test/isolation/output_iso/results/stats.out
--- /home/demo/postgres/src/test/isolation/expected/stats_1.out	2025-06-11 09:06:36.000000000 +0100
+++ /home/demo/postgres/src/test/isolation/output_iso/results/stats.out	2025-06-11 11:22:08.000000000 +0100
@@ -104,7 +104,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         2|t               |t              
+test_stat_func|                         2|f               |f              
 (1 row)
 
 
@@ -197,7 +197,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         5|t               |t              
+test_stat_func|                         5|f               |f              
 (1 row)
 
 step s2_func_stats: 
@@ -211,7 +211,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         5|t               |t              
+test_stat_func|                         5|f               |f              
 (1 row)
 
 
@@ -292,7 +292,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         3|t               |t              
+test_stat_func|                         3|f               |f              
 (1 row)
 
 step s2_func_stats: 
@@ -306,7 +306,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         3|t               |t              
+test_stat_func|                         3|f               |f              
 (1 row)
 
 
@@ -377,7 +377,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         2|t               |t              
+test_stat_func|                         2|f               |f              
 (1 row)
 
 step s2_func_stats: 
@@ -391,7 +391,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         2|t               |t              
+test_stat_func|                         2|f               |f              
 (1 row)
 
 
@@ -468,7 +468,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         2|t               |t              
+test_stat_func|                         2|f               |f              
 (1 row)
 
 step s1_commit: COMMIT;
@@ -580,7 +580,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         2|t               |t              
+test_stat_func|                         2|f               |f              
 (1 row)
 
 step s1_rollback: ROLLBACK;
@@ -601,7 +601,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         3|t               |t              
+test_stat_func|                         3|f               |f              
 (1 row)
 
 step s2_func_stats: 
@@ -615,7 +615,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         3|t               |t              
+test_stat_func|                         3|f               |f              
 (1 row)
 
 
@@ -865,7 +865,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         1|t               |t              
+test_stat_func|                         1|f               |f              
 (1 row)
 
 step s1_func_drop: DROP FUNCTION test_stat_func();
@@ -964,7 +964,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         1|t               |t              
+test_stat_func|                         1|f               |f              
 (1 row)
 
 step s1_func_drop: DROP FUNCTION test_stat_func();
@@ -1074,7 +1074,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         2|t               |t              
+test_stat_func|                         2|f               |f              
 (1 row)
 
 step s2_func_call: SELECT test_stat_func()
@@ -1106,7 +1106,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         3|t               |t              
+test_stat_func|                         3|f               |f              
 (1 row)
 
 step s1_func_stats2: 
@@ -1120,7 +1120,7 @@
 
 name           |pg_stat_get_function_calls|total_above_zero|self_above_zero
 ---------------+--------------------------+----------------+---------------
-test_stat_func2|                         2|t               |t              
+test_stat_func2|                         2|f               |f              
 (1 row)
 
 step s1_func_stats: 
@@ -1134,7 +1134,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         3|t               |t              
+test_stat_func|                         3|f               |f              
 (1 row)
 
 step s1_func_stats_reset: SELECT pg_stat_reset_single_function_counters('test_stat_func'::regproc);
@@ -1168,7 +1168,7 @@
 
 name           |pg_stat_get_function_calls|total_above_zero|self_above_zero
 ---------------+--------------------------+----------------+---------------
-test_stat_func2|                         2|t               |t              
+test_stat_func2|                         2|f               |f              
 (1 row)
 
 step s1_func_stats: 
@@ -1264,7 +1264,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         2|t               |t              
+test_stat_func|                         2|f               |f              
 (1 row)
 
 step s1_func_stats2: 
@@ -1278,7 +1278,7 @@
 
 name           |pg_stat_get_function_calls|total_above_zero|self_above_zero
 ---------------+--------------------------+----------------+---------------
-test_stat_func2|                         1|t               |t              
+test_stat_func2|                         1|f               |f              
 (1 row)
 
 step s1_func_stats: 
@@ -1292,7 +1292,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         2|t               |t              
+test_stat_func|                         2|f               |f              
 (1 row)
 
 step s1_reset: SELECT pg_stat_reset();
@@ -1375,7 +1375,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         1|t               |t              
+test_stat_func|                         1|f               |f              
 (1 row)
 
 
@@ -1410,7 +1410,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         1|t               |t              
+test_stat_func|                         1|f               |f              
 (1 row)
 
 
@@ -1445,7 +1445,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         1|t               |t              
+test_stat_func|                         1|f               |f              
 (1 row)
 
 
@@ -1482,7 +1482,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         1|t               |t              
+test_stat_func|                         1|f               |f              
 (1 row)
 
 step s2_func_call: SELECT test_stat_func()
@@ -1508,7 +1508,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         2|t               |t              
+test_stat_func|                         2|f               |f              
 (1 row)
 
 step s1_commit: COMMIT;
@@ -1552,7 +1552,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         1|t               |t              
+test_stat_func|                         1|f               |f              
 (1 row)
 
 step s2_func_call: SELECT test_stat_func()
@@ -1584,7 +1584,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         1|t               |t              
+test_stat_func|                         1|f               |f              
 (1 row)
 
 step s1_func_stats2: 
@@ -1598,7 +1598,7 @@
 
 name           |pg_stat_get_function_calls|total_above_zero|self_above_zero
 ---------------+--------------------------+----------------+---------------
-test_stat_func2|                         2|t               |t              
+test_stat_func2|                         2|f               |f              
 (1 row)
 
 step s1_commit: COMMIT;
@@ -1642,7 +1642,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         1|t               |t              
+test_stat_func|                         1|f               |f              
 (1 row)
 
 step s2_func_call: SELECT test_stat_func()
@@ -1674,7 +1674,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         1|t               |t              
+test_stat_func|                         1|f               |f              
 (1 row)
 
 step s1_func_stats2: 
@@ -1688,7 +1688,7 @@
 
 name           |pg_stat_get_function_calls|total_above_zero|self_above_zero
 ---------------+--------------------------+----------------+---------------
-test_stat_func2|                         1|t               |t              
+test_stat_func2|                         1|f               |f              
 (1 row)
 
 step s1_commit: COMMIT;
@@ -1842,7 +1842,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         5|t               |t              
+test_stat_func|                         5|f               |f              
 (1 row)
 
 step s1_commit_prepared_a: COMMIT PREPARED 'a';
@@ -1858,7 +1858,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         5|t               |t              
+test_stat_func|                         5|f               |f              
 (1 row)
 
 
@@ -1933,7 +1933,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         5|t               |t              
+test_stat_func|                         5|f               |f              
 (1 row)
 
 step s1_rollback_prepared_a: ROLLBACK PREPARED 'a';
@@ -1949,7 +1949,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         5|t               |t              
+test_stat_func|                         5|f               |f              
 (1 row)
 
 
@@ -2024,7 +2024,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         5|t               |t              
+test_stat_func|                         5|f               |f              
 (1 row)
 
 step s2_commit_prepared_a: COMMIT PREPARED 'a';
@@ -2040,7 +2040,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         5|t               |t              
+test_stat_func|                         5|f               |f              
 (1 row)
 
 
@@ -2115,7 +2115,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         5|t               |t              
+test_stat_func|                         5|f               |f              
 (1 row)
 
 step s2_rollback_prepared_a: ROLLBACK PREPARED 'a';
@@ -2131,7 +2131,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         5|t               |t              
+test_stat_func|                         5|f               |f              
 (1 row)
 
 
@@ -3753,7 +3753,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         1|t               |t              
+test_stat_func|                         1|f               |f              
 (1 row)
 
 step s1_commit: COMMIT;

Attachments:

  [text/plain] entry_timestamp.regression.diffs (1.7K, ../6849d7e8.5d0a0220.3dbe66.c4e1@mx.google.com/2-entry_timestamp.regression.diffs)
  download | inline:
diff -U3 /home/demo/postgres/contrib/pg_stat_statements/expected/entry_timestamp.out /home/demo/postgres/contrib/pg_stat_statements/results/entry_timestamp.out
--- /home/demo/postgres/contrib/pg_stat_statements/expected/entry_timestamp.out 2025-06-11 09:06:33.000000000 +0100
+++ /home/demo/postgres/contrib/pg_stat_statements/results/entry_timestamp.out  2025-06-11 11:14:34.000000000 +0100
@@ -45,7 +45,7 @@
 WHERE query LIKE '%STMTTS%';
  total | minmax_plan_zero | minmax_exec_zero | minmax_stats_since_after_ref | stats_since_after_ref
 -------+------------------+------------------+------------------------------+-----------------------
-     2 |                0 |                0 |                            0 |                     0
+     2 |                2 |                0 |                            0 |                     0
 (1 row)

 -- Perform single min/max reset
@@ -71,7 +71,7 @@
 WHERE query LIKE '%STMTTS%';
  total | minmax_plan_zero | minmax_exec_zero | minmax_stats_since_after_ref | stats_since_after_ref
 -------+------------------+------------------+------------------------------+-----------------------
-     2 |                1 |                1 |                            1 |                     0
+     2 |                2 |                1 |                            1 |                     0
 (1 row)

 -- check minmax reset timestamps
@@ -147,7 +147,7 @@
 WHERE query LIKE '%STMTTS%';
  total | minmax_exec_zero | minmax_ts_after_ref | stats_since_after_ref
 -------+------------------+---------------------+-----------------------
-     2 |                1 |                   2 |                     0
+     2 |                2 |                   2 |                     0
 (1 row)

  [text/plain] iso.regression.diffs (14.9K, ../6849d7e8.5d0a0220.3dbe66.c4e1@mx.google.com/3-iso.regression.diffs)
  download | inline:
diff -U3 /home/demo/postgres/src/test/isolation/expected/stats_1.out /home/demo/postgres/src/test/isolation/output_iso/results/stats.out
--- /home/demo/postgres/src/test/isolation/expected/stats_1.out	2025-06-11 09:06:36.000000000 +0100
+++ /home/demo/postgres/src/test/isolation/output_iso/results/stats.out	2025-06-11 11:22:08.000000000 +0100
@@ -104,7 +104,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         2|t               |t              
+test_stat_func|                         2|f               |f              
 (1 row)
 
 
@@ -197,7 +197,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         5|t               |t              
+test_stat_func|                         5|f               |f              
 (1 row)
 
 step s2_func_stats: 
@@ -211,7 +211,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         5|t               |t              
+test_stat_func|                         5|f               |f              
 (1 row)
 
 
@@ -292,7 +292,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         3|t               |t              
+test_stat_func|                         3|f               |f              
 (1 row)
 
 step s2_func_stats: 
@@ -306,7 +306,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         3|t               |t              
+test_stat_func|                         3|f               |f              
 (1 row)
 
 
@@ -377,7 +377,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         2|t               |t              
+test_stat_func|                         2|f               |f              
 (1 row)
 
 step s2_func_stats: 
@@ -391,7 +391,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         2|t               |t              
+test_stat_func|                         2|f               |f              
 (1 row)
 
 
@@ -468,7 +468,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         2|t               |t              
+test_stat_func|                         2|f               |f              
 (1 row)
 
 step s1_commit: COMMIT;
@@ -580,7 +580,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         2|t               |t              
+test_stat_func|                         2|f               |f              
 (1 row)
 
 step s1_rollback: ROLLBACK;
@@ -601,7 +601,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         3|t               |t              
+test_stat_func|                         3|f               |f              
 (1 row)
 
 step s2_func_stats: 
@@ -615,7 +615,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         3|t               |t              
+test_stat_func|                         3|f               |f              
 (1 row)
 
 
@@ -865,7 +865,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         1|t               |t              
+test_stat_func|                         1|f               |f              
 (1 row)
 
 step s1_func_drop: DROP FUNCTION test_stat_func();
@@ -964,7 +964,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         1|t               |t              
+test_stat_func|                         1|f               |f              
 (1 row)
 
 step s1_func_drop: DROP FUNCTION test_stat_func();
@@ -1074,7 +1074,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         2|t               |t              
+test_stat_func|                         2|f               |f              
 (1 row)
 
 step s2_func_call: SELECT test_stat_func()
@@ -1106,7 +1106,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         3|t               |t              
+test_stat_func|                         3|f               |f              
 (1 row)
 
 step s1_func_stats2: 
@@ -1120,7 +1120,7 @@
 
 name           |pg_stat_get_function_calls|total_above_zero|self_above_zero
 ---------------+--------------------------+----------------+---------------
-test_stat_func2|                         2|t               |t              
+test_stat_func2|                         2|f               |f              
 (1 row)
 
 step s1_func_stats: 
@@ -1134,7 +1134,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         3|t               |t              
+test_stat_func|                         3|f               |f              
 (1 row)
 
 step s1_func_stats_reset: SELECT pg_stat_reset_single_function_counters('test_stat_func'::regproc);
@@ -1168,7 +1168,7 @@
 
 name           |pg_stat_get_function_calls|total_above_zero|self_above_zero
 ---------------+--------------------------+----------------+---------------
-test_stat_func2|                         2|t               |t              
+test_stat_func2|                         2|f               |f              
 (1 row)
 
 step s1_func_stats: 
@@ -1264,7 +1264,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         2|t               |t              
+test_stat_func|                         2|f               |f              
 (1 row)
 
 step s1_func_stats2: 
@@ -1278,7 +1278,7 @@
 
 name           |pg_stat_get_function_calls|total_above_zero|self_above_zero
 ---------------+--------------------------+----------------+---------------
-test_stat_func2|                         1|t               |t              
+test_stat_func2|                         1|f               |f              
 (1 row)
 
 step s1_func_stats: 
@@ -1292,7 +1292,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         2|t               |t              
+test_stat_func|                         2|f               |f              
 (1 row)
 
 step s1_reset: SELECT pg_stat_reset();
@@ -1375,7 +1375,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         1|t               |t              
+test_stat_func|                         1|f               |f              
 (1 row)
 
 
@@ -1410,7 +1410,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         1|t               |t              
+test_stat_func|                         1|f               |f              
 (1 row)
 
 
@@ -1445,7 +1445,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         1|t               |t              
+test_stat_func|                         1|f               |f              
 (1 row)
 
 
@@ -1482,7 +1482,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         1|t               |t              
+test_stat_func|                         1|f               |f              
 (1 row)
 
 step s2_func_call: SELECT test_stat_func()
@@ -1508,7 +1508,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         2|t               |t              
+test_stat_func|                         2|f               |f              
 (1 row)
 
 step s1_commit: COMMIT;
@@ -1552,7 +1552,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         1|t               |t              
+test_stat_func|                         1|f               |f              
 (1 row)
 
 step s2_func_call: SELECT test_stat_func()
@@ -1584,7 +1584,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         1|t               |t              
+test_stat_func|                         1|f               |f              
 (1 row)
 
 step s1_func_stats2: 
@@ -1598,7 +1598,7 @@
 
 name           |pg_stat_get_function_calls|total_above_zero|self_above_zero
 ---------------+--------------------------+----------------+---------------
-test_stat_func2|                         2|t               |t              
+test_stat_func2|                         2|f               |f              
 (1 row)
 
 step s1_commit: COMMIT;
@@ -1642,7 +1642,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         1|t               |t              
+test_stat_func|                         1|f               |f              
 (1 row)
 
 step s2_func_call: SELECT test_stat_func()
@@ -1674,7 +1674,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         1|t               |t              
+test_stat_func|                         1|f               |f              
 (1 row)
 
 step s1_func_stats2: 
@@ -1688,7 +1688,7 @@
 
 name           |pg_stat_get_function_calls|total_above_zero|self_above_zero
 ---------------+--------------------------+----------------+---------------
-test_stat_func2|                         1|t               |t              
+test_stat_func2|                         1|f               |f              
 (1 row)
 
 step s1_commit: COMMIT;
@@ -1842,7 +1842,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         5|t               |t              
+test_stat_func|                         5|f               |f              
 (1 row)
 
 step s1_commit_prepared_a: COMMIT PREPARED 'a';
@@ -1858,7 +1858,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         5|t               |t              
+test_stat_func|                         5|f               |f              
 (1 row)
 
 
@@ -1933,7 +1933,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         5|t               |t              
+test_stat_func|                         5|f               |f              
 (1 row)
 
 step s1_rollback_prepared_a: ROLLBACK PREPARED 'a';
@@ -1949,7 +1949,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         5|t               |t              
+test_stat_func|                         5|f               |f              
 (1 row)
 
 
@@ -2024,7 +2024,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         5|t               |t              
+test_stat_func|                         5|f               |f              
 (1 row)
 
 step s2_commit_prepared_a: COMMIT PREPARED 'a';
@@ -2040,7 +2040,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         5|t               |t              
+test_stat_func|                         5|f               |f              
 (1 row)
 
 
@@ -2115,7 +2115,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         5|t               |t              
+test_stat_func|                         5|f               |f              
 (1 row)
 
 step s2_rollback_prepared_a: ROLLBACK PREPARED 'a';
@@ -2131,7 +2131,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         5|t               |t              
+test_stat_func|                         5|f               |f              
 (1 row)
 
 
@@ -3753,7 +3753,7 @@
 
 name          |pg_stat_get_function_calls|total_above_zero|self_above_zero
 --------------+--------------------------+----------------+---------------
-test_stat_func|                         1|t               |t              
+test_stat_func|                         1|f               |f              
 (1 row)
 
 step s1_commit: COMMIT;

view thread (16+ messages)  latest in thread

Message-ID: <6849d7e8.5d0a0220.3dbe66.c4e1@mx.google.com>
Permalink:  ../6849d7e8.5d0a0220.3dbe66.c4e1@mx.google.com/
Also on:    postgresql.org/message-id/6849d7e8.5d0a0220.3dbe66.c4e1@mx.google.com

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-hackers@postgresql.org
  Cc: mbanck@gmx.net, tgl@sss.pgh.pa.us, michael@paquier.xyz, pgsql-hackers@lists.postgresql.org
  Subject: Re: Safeguards against incorrect fd flags for fsync()
  In-Reply-To: <6849d7e8.5d0a0220.3dbe66.c4e1@mx.google.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox