Re: pg_usleep for multisecond delays

From: Nathan Bossart <nathandbossart(at)gmail(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Robert Haas <robertmhaas(at)gmail(dot)com>, Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>, pgsql-hackers(at)postgresql(dot)org
Subject: Re: pg_usleep for multisecond delays
Date: 2023-03-13 21:16:31
Message-ID: 20230313211631.GA423713@nathanxps13
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Fri, Mar 10, 2023 at 12:28:28PM -0500, Tom Lane wrote:
> A quick grep for pg_usleep with large intervals finds rather more
> than you touched:
>
> [...]
>
> Did you have reasons for excluding the rest of these?

I'm still looking into each of these, but my main concerns were 1) ensuring
latch support had been set up and 2) figuring out the right interrupt
function to use. Thus far, I don't think latch support is a problem
because InitializeLatchSupport() is called quite early. However, I'm not
as confident with the interrupt functions yet. Some of these multisecond
sleeps are done very early before the signal handlers are set up. Others
are done within the sigsetjmp() block. And at least one is in a code path
that both the startup process and single-user mode touch.

At the moment, I'm thinking about either removing the check_interrupts
function pointer argument altogether or making it optional for code paths
where we might not want any interrupt handling to run. In the former
approach, we could simply call WaitLatch() without a latch. While this
wouldn't do any interrupt handling, we'd still get custom wait event
support and better responsiveness when the postmaster dies, which is
strictly better than what's there today. And many of these sleeps are in
uncommon or debug paths, so delaying interrupt handling might be okay. In
the latter approach, we would have interrupt handling, but I'm worried that
would be easy to get wrong. I think it would be nice to have interrupt
handling if possible, so I'm still (over)thinking about this.

I agree with the rest of your comments.

--
Nathan Bossart
Amazon Web Services: https://aws.amazon.com

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message David Zhang 2023-03-13 21:30:55 Re: [BUG] pg_stat_statements and extended query protocol
Previous Message Andres Freund 2023-03-13 21:11:08 Re: Transparent column encryption