From: | Alexander Lakhin <exclusion(at)gmail(dot)com> |
---|---|
To: | Masahiko Sawada <sawada(dot)mshk(at)gmail(dot)com>, pgsql-bugs(at)lists(dot)postgresql(dot)org |
Cc: | Andres Freund <andres(at)anarazel(dot)de> |
Subject: | Re: BUG #18031: Segmentation fault after deadlock within VACUUM's parallel worker |
Date: | 2023-07-22 10:00:00 |
Message-ID: | f0f5ab8f-5e3c-edd1-d6ab-d23263759f53@gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
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.
> 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.
Best regards,
Alexander
From | Date | Subject | |
---|---|---|---|
Next Message | Masahiko Sawada | 2023-07-24 01:39:54 | Re: BUG #18031: Segmentation fault after deadlock within VACUUM's parallel worker |
Previous Message | Amit Kapila | 2023-07-22 05:25:53 | Re: BUG #18027: Logical replication taking forever |