Re: BUG #18031: Segmentation fault after deadlock within VACUUM's parallel worker
От | Masahiko Sawada |
---|---|
Тема | Re: BUG #18031: Segmentation fault after deadlock within VACUUM's parallel worker |
Дата | |
Msg-id | CAD21AoCkpvU97e0Wrgo=Rzz=tQ43dR8M8NWGTnY=RV94Qa81-A@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: BUG #18031: Segmentation fault after deadlock within VACUUM's parallel worker (Alexander Lakhin <exclusion@gmail.com>) |
Список | pgsql-bugs |
On Sat, Jul 22, 2023 at 7:00 PM Alexander Lakhin <exclusion@gmail.com> wrote: > > Hello Sawada-san, > > 21.07.2023 11:01, Masahiko Sawada wrote: > > ... > > leading to calling RemoveFromWaitQueue() again. I think we should use > > dclist_delete_from_thoroughly() instead. With the attached patch, the > > issue doesn't happen in my environment. > > Thank you for the analysis and the patch! It fixes the issue for me too. Thank you for the confirmation. I found this issue is the same as one that has already been reported[1]. > > > Another thing I noticed is that the Assert(waitLock) in > > RemoveFromWaitQueue() is useless actually, since we access *waitLock > > before that: > > Yeah, I also noticed that, and a simple grep-based script with a little > eyeballing discovered one similar Assert usage: > > void > llvm_split_symbol_name(const char *name, char **modname, char **funcname) > { > ... > *funcname = rindex(name, '.'); > (*funcname)++; /* jump over . */ > > *modname = pnstrdup(name + strlen("pgextern."), > *funcname - name - strlen("pgextern.") - 1); > Assert(funcname); > > May be it's worth to fix it in passing. Yeah, but it should be discussed on another thread. [1] https://www.postgresql.org/message-id/ZKy4AdrLEfbqrxGJ%40telsasoft.com -- Masahiko Sawada Amazon Web Services: https://aws.amazon.com
В списке pgsql-bugs по дате отправления: