[pacman-dev] [PATCH v2] lock file may be left behind when a signal arrives while in cleanup
Andrew Gregory
andrew.gregory.8 at gmail.com
Thu Dec 3 03:29:52 UTC 2020
On 12/02/20 at 08:02pm, lilydjwg wrote:
> Hi there,
>
> Is there anything remaining I could do to get this merged? Yesterday we
> had a dangling db.lck again when a member lost his connection to the
> server while running devtools.
>
> On Wed, Aug 12, 2020 at 11:17:49PM +0800, lilydjwg wrote:
> > When a SIGINT or SIGHUP arrives before alpm_unlock (in alpm_release) but
> > after remove_soft_interrupt_handler, the lock file will be left behind.
> >
> > Signed-off-by: lilydjwg <lilydjwg at gmail.com>
> > ---
> >
> > Oops, here is an updated version that calls _alpm_handle_unlock
> > before remove_soft_interrupt_handler. It should be fine to call
> > _alpm_handle_unlock twice.
> >
> > src/pacman/pacman.c | 3 +++
> > 1 file changed, 3 insertions(+)
> >
> > diff --git a/src/pacman/pacman.c b/src/pacman/pacman.c
> > index fefd3fa4..8928ccc4 100644
> > --- a/src/pacman/pacman.c
> > +++ b/src/pacman/pacman.c
> > @@ -287,6 +287,9 @@ static void setuseragent(void)
> > */
> > static void cleanup(int ret)
> > {
> > + if(config) {
> > + _alpm_handle_unlock(config->handle);
> > + }
> > remove_soft_interrupt_handler();
> > if(config) {
> > /* free alpm library resources */
_alpm_handle_unlock is a private function not exposed to front-ends.
More information about the pacman-dev
mailing list