commit:     b1d467ad9984c8fb100aeccb7de084f395a099f4
Author:     Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Tue Nov 21 20:05:50 2017 +0000
Commit:     Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Tue Nov 21 20:08:13 2017 +0000
URL:        https://gitweb.gentoo.org/proj/portage.git/commit/?id=b1d467ad

emaint binhost: use _populate_local return value when appropriate

Since _populate_local does not write the Packages file to disk,
its return value must be used because _load_pkgindex would return
stale data.

Fixes: 694419fc11af ("emaint binhost: use _populate_local instead of _populate 
(bug 638320)")
Bug: https://bugs.gentoo.org/638320

 pym/portage/emaint/modules/binhost/binhost.py | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/pym/portage/emaint/modules/binhost/binhost.py 
b/pym/portage/emaint/modules/binhost/binhost.py
index f18878c7c..1c9006386 100644
--- a/pym/portage/emaint/modules/binhost/binhost.py
+++ b/pym/portage/emaint/modules/binhost/binhost.py
@@ -122,14 +122,14 @@ class BinhostHandler(object):
                        pkgindex_lock = locks.lockfile(
                                self._pkgindex_file, wantnewlockfile=1)
                        try:
-                               # Repopulate with lock held.
-                               bintree._populate_local()
+                               # Repopulate with lock held. If _populate_local 
returns
+                               # data then use that, since _load_pkgindex 
would return
+                               # stale data in this case.
+                               self._pkgindex = pkgindex = 
(bintree._populate_local() or
+                                       bintree._load_pkgindex())
                                cpv_all = self._bintree.dbapi.cpv_all()
                                cpv_all.sort()
 
-                               pkgindex = bintree._load_pkgindex()
-                               self._pkgindex = pkgindex
-
                                # Recount stale/missing packages, with lock 
held.
                                missing = []
                                stale = []

Reply via email to