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