Re: [HACKERS] [COMMITTERS] pgsql: Fix possible crash reading pg_stat_activity.
От | Robert Haas |
---|---|
Тема | Re: [HACKERS] [COMMITTERS] pgsql: Fix possible crash reading pg_stat_activity. |
Дата | |
Msg-id | CA+TgmoZMaCNopg9Hn64WDMJfJwy_zs+Gy+z603JsZXqe=iqNNA@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: [HACKERS] [COMMITTERS] pgsql: Fix possible crash reading pg_stat_activity. (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: [HACKERS] [COMMITTERS] pgsql: Fix possible crash reading pg_stat_activity.
|
Список | pgsql-hackers |
On Thu, Jan 5, 2017 at 1:02 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote: > Robert Haas <robertmhaas@gmail.com> writes: >> Not that you mention it, I think I mis-stated the problem in the >> commit message: the problem is not if the tranche is unregistered, but >> rather if it is registered but the pointer references an address that >> is no longer valid. Registering the tranche with a fixed string >> rather than a pointer into a DSM segment that can go away fixes that. > > Got it. That's fine then, but perhaps the comment on > LWLockRegisterTranche needs to be reconsidered. It's not good enough for > the tranche name to be "backend lifetime", it has to be something valid in > other backends as well. That probably means either (1) compile-time > constant in the core backend (not loadable modules!) or (2) allocated in > the main shared-memory segment. No, I think backend-lifetime is right. The tranche registrations are all backend-local state, so there's no problem with backend A registering a string at one address and backend B registering a string at a different address. It's just important that neither of those strings goes away before the corresponding backend does. To put that another way, registration is performed separately in every backend. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
В списке pgsql-hackers по дате отправления: