Re: Using WaitEventSet in the postmaster

From: Thomas Munro <thomas(dot)munro(at)gmail(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Andres Freund <andres(at)anarazel(dot)de>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Using WaitEventSet in the postmaster
Date: 2023-01-12 06:57:01
Message-ID: CA+hUKGJVuDzHgdND23sEqb7tgcqsAOVFuLq=_3guOsRGCcOQVA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Thu, Jan 12, 2023 at 7:27 PM Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> skink seems to have found a problem:
>
> ==2011873== VALGRINDERROR-BEGIN
> ==2011873== Syscall param epoll_wait(events) points to unaddressable byte(s)
> ==2011873== at 0x4D8DC73: epoll_wait (epoll_wait.c:30)
> ==2011873== by 0x55CA49: WaitEventSetWaitBlock (latch.c:1527)
> ==2011873== by 0x55D591: WaitEventSetWait (latch.c:1473)
> ==2011873== by 0x4F2B28: ServerLoop (postmaster.c:1729)
> ==2011873== by 0x4F3E85: PostmasterMain (postmaster.c:1452)
> ==2011873== by 0x42643C: main (main.c:200)
> ==2011873== Address 0x7b1e620 is 1,360 bytes inside a recently re-allocated block of size 8,192 alloc'd
> ==2011873== at 0x48407B4: malloc (vg_replace_malloc.c:381)
> ==2011873== by 0x6D9D30: AllocSetContextCreateInternal (aset.c:446)
> ==2011873== by 0x4F2D9B: PostmasterMain (postmaster.c:614)
> ==2011873== by 0x42643C: main (main.c:200)
> ==2011873==
> ==2011873== VALGRINDERROR-END

Repro'd here on Valgrind. Oh, that's interesting. WaitEventSetWait()
wants to use an internal buffer of the size given to the constructor
function, but passes the size of the caller's output buffer to
epoll_wait() and friends. Perhaps it should use Min(nevents,
set->nevents_space). I mean, I should have noticed that, but I think
that's arguably a pre-existing bug in the WES code, or at least an
unhelpful interface. Thinking...

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Will Mortensen 2023-01-12 07:03:30 Re: Exposing the lock manager's WaitForLockers() to SQL
Previous Message Pavel Stehule 2023-01-12 06:50:23 Re: On login trigger: take three