Re: [HACKERS] [sqlsmith] stuck spinlock in pg_stat_get_wal_receiver after OOM
| От | Tom Lane |
|---|---|
| Тема | Re: [HACKERS] [sqlsmith] stuck spinlock in pg_stat_get_wal_receiver after OOM |
| Дата | |
| Msg-id | 23454.1507052652@sss.pgh.pa.us обсуждение |
| Ответ на | Re: [HACKERS] [sqlsmith] stuck spinlock in pg_stat_get_wal_receiver after OOM (Tom Lane <tgl@sss.pgh.pa.us>) |
| Ответы |
Re: [HACKERS] [sqlsmith] stuck spinlock in pg_stat_get_wal_receiverafter OOM
|
| Список | pgsql-hackers |
I wrote:
>> So that's trouble waiting to happen, for sure. At the very least we
>> need to do a single fetch of WalRcv->latch, not two. I wonder whether
>> even that is sufficient, though: this coding requires an atomic fetch of
>> a pointer, which is something we generally don't assume to be safe.
BTW, I had supposed that this bug was of long standing, but actually it's
new in v10, dating to 597a87ccc9a6fa8af7f3cf280b1e24e41807d555. Before
that walreceiver start/stop just changed the owner of a long-lived shared
latch, and there was no question of stale pointers.
I considered reverting that decision, but the reason for it seems to have
been to let libpqwalreceiver.c manipulate MyProc->procLatch rather than
having to know about a custom latch. That's probably a sufficient reason
to justify some squishiness in the wakeup logic. Still, we might want to
revisit it if we find any other problems here.
regards, tom lane
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers
В списке pgsql-hackers по дате отправления: