Re: the s_lock_stuck on perform_spin_delay

From: Andy Fan <zhihuifan1213(at)163(dot)com>
To: Andy Fan <zhihuifan1213(at)163(dot)com>
Cc: Robert Haas <robertmhaas(at)gmail(dot)com>, Matthias van de Meent <boekewurm+postgres(at)gmail(dot)com>, Andres Freund <andres(at)anarazel(dot)de>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Thomas Munro <tmunro(at)postgresql(dot)org>, pgsql-hackers(at)lists(dot)postgresql(dot)org
Subject: Re: the s_lock_stuck on perform_spin_delay
Date: 2024-01-22 07:18:35
Message-ID: 87o7ddx26q.fsf@163.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers


Andy Fan <zhihuifan1213(at)163(dot)com> writes:

> I found a speical case about checking it in errstart. So commit 3 in v7
> is added.
>
> commit 757c67c1d4895ce6a523bcf5217af8eb2351e2a1 (HEAD -> s_stuck_v3)
> Author: yizhi.fzh <yizhi(dot)fzh(at)alibaba-inc(dot)com>
> Date: Mon Jan 22 07:14:29 2024 +0800
>
> Bypass SpinLock checking in SIGQUIT signal hander
>

I used sigismember(&BlockSig, SIGQUIT) to detect if a process is doing a
quickdie, however this is bad not only because it doesn't work on
Windows, but also it has too poor performance even it impacts on
USE_ASSERT_CHECKING build only. In v8, I introduced a new global
variable quickDieInProgress to handle this.

--
Best Regards
Andy Fan

Attachment Content-Type Size
v8-0001-Detect-more-misuse-of-spin-lock-automatically.patch text/x-diff 7.9 KB
v8-0002-Treat-un-LockBufHdr-as-a-SpinLock.patch text/x-diff 1.4 KB
v8-0003-bypass-SpinLock-checking-in-SIGQUIT-signal-hander.patch text/x-diff 2.5 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Konstantin Knizhnik 2024-01-22 07:21:14 Re: index prefetching
Previous Message Hayato Kuroda (Fujitsu) 2024-01-22 07:06:50 RE: speed up a logical replica setup