flock does not lock dpkg lock file properly

Bug #1720541 reported by Jarno Suni on 2017-09-30
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
util-linux (Ubuntu)
Undecided
Unassigned

Bug Description

Test:
sudo flock /var/lib/dpkg/lock -c \
'echo 1; apt-get -o Debug::NoLocking=true check; echo 2; apt-get check'

Expected behavior:
apt-get fails in stage 2.

Workaround (needs moreutils package, which is not installed by default):

sudo lckdo /var/lib/dpkg/lock /bin/sh -c \
'echo 1; apt-get -o Debug::NoLocking=true check; echo 2; apt-get check'

Similarly, flock does not recognize lock set by e.g. apt-get.

man lckdo:
"Now that util-linux contains a similar command named flock, lckdo is deprecated, and will be removed from some future version of moreutils."

So developer can not rely on lckdo.

ProblemType: Bug
DistroRelease: Ubuntu 14.04
Package: util-linux 2.20.1-5.1ubuntu20.9
ProcVersionSignature: Ubuntu 4.4.0-96.119~14.04.1-generic 4.4.83
Uname: Linux 4.4.0-96-generic x86_64
ApportVersion: 2.14.1-0ubuntu3.25
Architecture: amd64
CurrentDesktop: XFCE
Date: Sat Sep 30 16:30:50 2017
EcryptfsInUse: Yes
InstallationDate: Installed on 2014-09-21 (1105 days ago)
InstallationMedia: Ubuntu-Studio 14.04.1 LTS "Trusty Tahr" - Release amd64 (20140722.1)
SourcePackage: util-linux
UpgradeStatus: No upgrade log present (probably fresh install)
mtime.conffile..etc.cron.weekly.fstrim: 2014-09-21T13:07:51.420447

Jarno Suni (jarnos) wrote :
Jarno Suni (jarnos) on 2017-10-01
description: updated
Phillip Susi (psusi) wrote :

dpkg does not use flock(); it uses the lock file /var/lib/dpkg/lock.

Changed in util-linux (Ubuntu):
status: New → Invalid
Jarno Suni (jarnos) wrote :

Phillip Susi, I never claimed it did. But I may want to lock the /var/lib/dpkg/lock beforehand, so that system is guaranteed to be unchanged before I launch apt-get in a script. So I think the status change you made, and the justification you gave is invalid.

Changed in util-linux (Ubuntu):
status: Invalid → New
Phillip Susi (psusi) wrote :

No; what you want to do and what flock is intended to do are different things. You're complaining that you can't use a hammer to screw in a screw. You're using the wrong tool for the job.

Changed in util-linux (Ubuntu):
status: New → Invalid
Jarno Suni (jarnos) wrote :

flock is used for managing locks from shell script. dpkg uses lock file /var/lib/dpkg/lock, but I can not manage it by flock. What is right tool for the job I want to do then?

Changed in util-linux (Ubuntu):
status: Invalid → New
Phillip Susi (psusi) wrote :

lockfile from the procmail package will do it.

Changed in util-linux (Ubuntu):
status: New → Invalid
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers