Re: Bug in pg_get_aios() - Mailing list pgsql-hackers

From Chao Li
Subject Re: Bug in pg_get_aios()
Date
Msg-id 32BBB449-13FF-4DC7-9F7E-FB92CA0932FA@gmail.com
Whole thread Raw
In response to Bug in pg_get_aios()  ("cca5507" <cca5507@qq.com>)
Responses Re: Bug in pg_get_aios()
List pgsql-hackers

> On Mar 23, 2026, at 14:23, cca5507 <cca5507@qq.com> wrote:
>
> Hi,
>
> If I understand correctly, we want to set nulls[0] to true if owner_pid equals to 0:
>
> ```
> diff --git a/src/backend/storage/aio/aio_funcs.c b/src/backend/storage/aio/aio_funcs.c
> index 8997c762062..bcdd82318f7 100644
> --- a/src/backend/storage/aio/aio_funcs.c
> +++ b/src/backend/storage/aio/aio_funcs.c
> @@ -149,7 +149,7 @@ retry:
>                if (owner_pid != 0)
>                        values[0] = Int32GetDatum(owner_pid);
>                else
> -                       nulls[0] = false;
> +                       nulls[0] = true;
>
>                /* column: IO's id */
>                values[1] = Int32GetDatum(ioh_id);
> ```
>
> --
> Regards,
> ChangAo Chen

Indeed an obvious bug.

If we looking downwards, there is a correct usage:
```
        /* column: raw result (i.e. some form of syscall return value) */
        if (start_state == PGAIO_HS_COMPLETED_IO
            || start_state == PGAIO_HS_COMPLETED_SHARED
            || start_state == PGAIO_HS_COMPLETED_LOCAL)
            values[9] = Int32GetDatum(ioh_copy.result);
        else
            nulls[9] = true;
```

Best regards,
--
Chao Li (Evan)
HighGo Software Co., Ltd.
https://www.highgo.com/







pgsql-hackers by date:

Previous
From: Tender Wang
Date:
Subject: Fix "could not find memoization table entry"
Next
From: Pierre Ducroquet
Date:
Subject: Re: Change default of jit to off