Re: [HACKERS] [sqlsmith] Crash reading pg_stat_activity

Поиск
Список
Период
Сортировка
От Thomas Munro
Тема Re: [HACKERS] [sqlsmith] Crash reading pg_stat_activity
Дата
Msg-id CAEepm=3WXeoOYNEesAHx8qorJq_PF-_3r9Vh35JLyKpoe9yZ_A@mail.gmail.com
обсуждение исходный текст
Ответ на Re: [HACKERS] [sqlsmith] Crash reading pg_stat_activity  (Robert Haas <robertmhaas@gmail.com>)
Ответы Re: [HACKERS] [sqlsmith] Crash reading pg_stat_activity  (Robert Haas <robertmhaas@gmail.com>)
Список pgsql-hackers
On Thu, Jan 5, 2017 at 10:23 AM, Robert Haas <robertmhaas@gmail.com> wrote:
> On Tue, Dec 27, 2016 at 9:28 PM, Thomas Munro
> <thomas.munro@enterprisedb.com> wrote:
>> On Wed, Dec 28, 2016 at 11:57 AM, Thomas Munro
>> <thomas.munro@enterprisedb.com> wrote:
>>> But I'm starting to think that the best way might be to do BOTH of the
>>> things I said in my previous message: make dsa.c register on
>>> create/attach and also unregister before detaching iff the name was
>>> supplied at creation time for the benefit of extension writers, but
>>> make it not do anything at all about tranche name
>>> registration/unregistration if NULL was passed in at create time.
>>> Then register this particular tranche (LWTRANCHE_PARALLEL_QUERY_DSA)
>>> in every process in RegisterLWLockTranches.  That way, you'd get a
>>> useful name in pg_stat_activity for other backends that are running
>>> parallel queries if they are ever waiting for these locks (unlikely
>>> but interesting to know abotu if it happens).
>>
>> Maybe something like the attached.
>
> Now that array_base and array_stride are gone, I don't see any reason
> why the DSA machinery needs to be aware of tranche names at all.  So I
> propose to rip all that out, as in the attached.

The way I proposed makes it a lot easier to work with dynamic names so
you can differentiate variable numbers of areas; the names would have
exactly the right extent and they'd get unregistered in each backend
at just the right time.  On the other hand, I don't really like seeing
lock tranche stuff leaking into other APIs like this, and using
tranche IDs in any way other than allocating a small number of them at
startup isn't really supported anyway, so +1 for doing it your way.

At one stage I had an idea that that argument was naming the DSA area,
not the lock tranche, and then the lock tranche happened to use a name
that was built from that name, but that doesn't make any sense if it's
optional depending on whether you already registered the lock
tranche...

- char lwlock_tranche_name[DSA_MAXLEN];

You can remove the now-unused DSA_MAXLEN macro.

-- 
Thomas Munro
http://www.enterprisedb.com



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Tomas Vondra
Дата:
Сообщение: Re: [HACKERS] multivariate statistics (v19)
Следующее
От: Jim Nasby
Дата:
Сообщение: Re: [HACKERS] Odd behavior with PG_TRY