Re: Using WaitEventSet in the postmaster
От | Thomas Munro |
---|---|
Тема | Re: Using WaitEventSet in the postmaster |
Дата | |
Msg-id | CA+hUKGJVuDzHgdND23sEqb7tgcqsAOVFuLq=_3guOsRGCcOQVA@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Using WaitEventSet in the postmaster (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: Using WaitEventSet in the postmaster
|
Список | pgsql-hackers |
On Thu, Jan 12, 2023 at 7:27 PM Tom Lane <tgl@sss.pgh.pa.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...
В списке pgsql-hackers по дате отправления: