Thread

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Fix errno check based on EINTR in pg_flush_data()

  1. [PATCH] Fix EINTR retry condition in pg_flush_data sync_file_range path.

    DaeMyung Kang <charsyam@gmail.com> — 2026-04-29T15:18:11Z

    Hi, Hackers,
    
    While auditing src/backend/storage/file, I spotted a small but
    unambiguous bug in pg_flush_data()'s sync_file_range() retry path.
    Details below in the commit message; the fix is a one-token change.
    
    Thanks,
    DaeMyung
    
    ---
    
    The retry branch compared the syscall return value (rc) against EINTR,
    but sync_file_range() returns -1 on error and reports the actual errno
    out-of-band, so rc == EINTR was always false and the retry was dead
    code.  When sync_file_range() was actually interrupted by a signal,
    control fell through to the warning/error path instead of retrying.
    
    Compare errno instead, matching the convention already used elsewhere
    in this file (e.g. the pg_pread/pg_pwrite EINTR retries) and a few
    lines down for ENOSYS in this same block.
    ---
     src/backend/storage/file/fd.c | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    
  2. Re: [PATCH] Fix EINTR retry condition in pg_flush_data sync_file_range path.

    Michael Paquier <michael@paquier.xyz> — 2026-04-30T02:48:13Z

    On Thu, Apr 30, 2026 at 12:18:11AM +0900, DaeMyung Kang wrote:
    > While auditing src/backend/storage/file, I spotted a small but
    > unambiguous bug in pg_flush_data()'s sync_file_range() retry path.
    > Details below in the commit message; the fix is a one-token change.
    
    Ohh, nice catch.  This happens to be wrong since 0d369ac65004.
    --
    Michael