From 9a7b832fe25bab1753b15783ffc2982483bc45d7 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Thu, 19 Jan 2017 01:09:05 +0100 Subject: don't lock dpkg in update commands The update command acquires a lock on lists/, but at the end it will also require the dpkg/lock while building the binary caches. That seems rather pointless as we are only reading those files, not causing writing in them. This can also cause problems if a package installation is running and a background process (like cron) starts an update: If you are "lucky" enough the update process will pick the dpkg lock in between apt calls causing the installation process to fail. (cherry picked from commit 0d9081598afa051409b03dbdbe5025cd7ce59ba4) (cherry picked from commit b234a610a3818af69952bf85c389588a99b4349f) --- apt-private/private-update.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apt-private/private-update.cc b/apt-private/private-update.cc index b63b7d963..a886c830f 100644 --- a/apt-private/private-update.cc +++ b/apt-private/private-update.cc @@ -76,14 +76,14 @@ bool DoUpdate(CommandLine &CmdL) // Rebuild the cache. pkgCacheFile::RemoveCaches(); - if (Cache.BuildCaches() == false) + if (Cache.BuildCaches(false) == false) return false; // show basic stats (if the user whishes) if (_config->FindB("APT::Cmd::Show-Update-Stats", false) == true) { int upgradable = 0; - if (Cache.Open() == false) + if (Cache.Open(false) == false) return false; for (pkgCache::PkgIterator I = Cache->PkgBegin(); I.end() != true; ++I) { -- cgit v1.2.3