flock does not lock dpkg lock file properly

Bug #1720541 reported by Jarno Suni
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
util-linux (Ubuntu)
Invalid
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

Revision history for this message
Jarno Suni (jarnos) wrote :
Jarno Suni (jarnos)
description: updated
Revision history for this message
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
Revision history for this message
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
Revision history for this message
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
Revision history for this message
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
Revision history for this message
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  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.