Re: Should PostgresMain() do a LWLockReleaseAll()?

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Andres Freund <andres(at)2ndquadrant(dot)com>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: Should PostgresMain() do a LWLockReleaseAll()?
Date: 2014-02-23 19:48:12
Message-ID: 9984.1393184892@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Andres Freund <andres(at)2ndquadrant(dot)com> writes:
> Currently the error handling of normal backends only does a
> LWLockReleaseAll() once CurrentTransactionState->state != TRANS_DEFAULT
> because it's called in AbortTransaction(). There's pretty damn few
> places that fiddle with lwlocks outside of a transaction command, but I
> still do wonder whether it'd wouldn't be a tad more robust to
> unconditionally do a LWLockReleaseAll(), just like other error handlers
> are doing?

Why do that thing in particular, and not all the other things that
AbortTransaction() does?

The reason that other process main loops don't use AbortTransaction is
that they don't run transactions. I don't think arguing from what they
do is particularly relevant to PostgresMain.

regards, tom lane

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Pavel Stehule 2014-02-23 20:04:38 Re: often PREPARE can generate high load (and sometimes minutes long unavailability)
Previous Message Jeff Janes 2014-02-23 19:35:24 Re: often PREPARE can generate high load (and sometimes minutes long unavailability)