GNU bug report logs - #57501
call-with-file-lock does not remove lock file

Previous Next

Package: guix;

Reported by: Ricardo Wurmus <rekado <at> elephly.net>

Date: Wed, 31 Aug 2022 09:59:02 UTC

Severity: normal

Done: Ludovic Courtès <ludo <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


Message #10 received at 57501-done <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Ricardo Wurmus <rekado <at> elephly.net>
Cc: 57501-done <at> debbugs.gnu.org
Subject: Re: bug#57501: call-with-file-lock does not remove lock file
Date: Sun, 12 Feb 2023 01:52:36 +0100
Ricardo Wurmus <rekado <at> elephly.net> skribis:

> “call-with-file-lock” and “call-with-file-lock/no-wait” create a lock
> file but don’t remove the lock file when they exit.
>
> (guix build syscalls) defines these procedures with “dynamic-wind” so
> that the lock is always lifted with “unlock-file”.  While “unlock-file”
> uses the fcntl syscall to remove the lock on the file, the lock file
> itself is not deleted.
>
> I think it should be deleted.  When the lock file sticks around we may
> run into problems due to lock file ownership.  For example, imagine a
> cron job running as a different user that upgrades the contents of a
> user profile.  That cron job would leave behind an unlocked lock file
> owned by that user, preventing the owner of the profile from operating
> on the profile even though the lock has already been lifted with
> “unlock-file”.
>
> I propose letting either unlock-file or with-profile-lock delete the
> lock file.

Agreed.  Done in a68229b9a0f450db622511adfe00ff7307d745d3, thanks!

Ludo’.




This bug report was last modified 2 years and 159 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.