pgsql: Fix pgstat_count_io_op_time() calls passing incorrect informatio

From: Michael Paquier <michael(at)paquier(dot)xyz>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Fix pgstat_count_io_op_time() calls passing incorrect informatio
Date: 2026-06-17 07:10:56
Message-ID: E1wZkQK-000gjK-09@gemulon.postgresql.org
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Fix pgstat_count_io_op_time() calls passing incorrect information

Several calls of pgstat_count_io_op_time() have been used as data to
count negative values returned by pg_pread() or pg_pwrite(), leading to
an incorrect count reported, casting them back to uint64.

Most of the problematic calls updated here are adjusted so as we do not
report buggy negative numbers anymore. In xlogrecovery.c, the spot
updated still counts short reads. In xlog.c, after a WAL segment
initialization, I/O numbers are aggregated only after checking that the
operation has succeeded.

issues introduced by a051e71e28a1.

Reported-by: Peter Eisentraut <peter(at)eisentraut(dot)org>
Author: Bertrand Drouvot <bertranddrouvot(dot)pg(at)gmail(dot)com>
Reviewed-by: Michael Paquier <michael(at)paquier(dot)xyz>
Reviewed-by: Ayush Tiwari <ayushtiwari(dot)slg01(at)gmail(dot)com>
Discussion: https://postgr.es/m/0db864e6-4477-4eba-b2be-d3523cc86564@eisentraut.org
Backpatch-through: 18

Branch
------
REL_18_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/13f940b4b56f38414a0dbd820f65c8e74f55d466

Modified Files
--------------
src/backend/access/transam/xlog.c | 22 +++++++++++-----------
src/backend/access/transam/xlogreader.c | 8 +++++---
src/backend/access/transam/xlogrecovery.c | 6 ++++--
src/backend/replication/walreceiver.c | 6 +++---
4 files changed, 23 insertions(+), 19 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Nathan Bossart 2026-06-17 14:19:05 pgsql: vacuumdb: Fix --missing-stats-only for partitioned indexes.
Previous Message Heikki Linnakangas 2026-06-17 06:03:18 pgsql: Silence uninitialized variable warning with some compiler versio