On 11/3/21 20:09, Zac Medico wrote:
The lockfile function is expected to raise PermissionDenied if the (root) parent process holds the lock, so retry in this case.Bug: https://bugs.gentoo.org/468990 Signed-off-by: Zac Medico <zmed...@gentoo.org> --- bin/ebuild-ipc.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/bin/ebuild-ipc.py b/bin/ebuild-ipc.py index 4999c043a..6eaa658a2 100755 --- a/bin/ebuild-ipc.py +++ b/bin/ebuild-ipc.py @@ -158,7 +158,16 @@ class EbuildIpc: # Make locks quiet since unintended locking messages displayed on # stdout could corrupt the intended output of this program. portage.locks._quiet = True - lock_obj = portage.locks.lockfile(self.ipc_lock_file, unlinkfile=True) + # Acquire lock with PermissionDenied retry for bug #468990. + for _ in range(1000): + try: + lock_obj = portage.locks.lockfile(self.ipc_lock_file, unlinkfile=True) + except portage.exception.PermissionDenied: + time.sleep(0.1) + else: + break + else: + raise portage.exception.PermissionDenied(self.ipc_lock_file)try:return self._communicate(args)
Withdrawn in favor of this lockfile permission race fix: https://archives.gentoo.org/gentoo-portage-dev/message/88916062415d9f692091dfb947f1bda2 -- Thanks, Zac
OpenPGP_signature
Description: OpenPGP digital signature