Bugzilla will be upgraded to version 5.0 on a still to be determined date in the near future. The original upgrade date has been delayed.
Bug 1428210 - yum retrieves metadata of the slow repository before detecting the fastest mirror by fastestmirror plugin
yum retrieves metadata of the slow repository before detecting the fastest mi...
Status: CLOSED ERRATA
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: yum-utils (Show other bugs)
7.3
All Linux
medium Severity medium
: rc
: ---
Assigned To: Michal Domonkos
Eva Mrakova
Lucie Maňásková
: Patch, Regression
Depends On:
Blocks: 1420851 1465896 1466368 1473733
  Show dependency treegraph
 
Reported: 2017-03-01 21:11 EST by Masahiro Matsuya
Modified: 2018-04-10 12:51 EDT (History)
9 users (show)

See Also:
Fixed In Version: yum-utils-1.1.31-43.el7
Doc Type: Release Note
Doc Text:
The *fastestmirror* plug-in now orders mirrors before the metadata download Previously, when the *yum* installer ran for the first time after a cache cleanup, the *fastestmirror* plug-in did not select the fastest mirror before metadata download. This sometimes caused a delay if some mirrors were slow or unavailable. With this update, the *fastestmirror* plug-in has been modified to have effect on mirror selection before metadata download. As a result, the mirrors are polled and arranged before metadata download, which prevents such delays.
Story Points: ---
Clone Of:
Environment:
Last Closed: 2018-04-10 12:50:32 EDT
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)


External Trackers
Tracker ID Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2018:0919 None None None 2018-04-10 12:51 EDT

  None (edit)
Description Masahiro Matsuya 2017-03-01 21:11:50 EST
Description of problem:

A customer is using fastestmirror plugin to detect the fastest mirror in the list.
In RHEL6, the detection was done before retrieving the metadata or all repositories, so it just could retrieve the metadata from the fastest one only.
In RHEL7, the metadata is retrieved before the detection, so it tries to retrieve the metadata from a slower mirror. When some mirrors in the list are not available, it makes a delay until finding the usable mirror.

This looks related with [1]. The change was not in RHEL6, but it's in RHEL7.
The customer tested the following change in /usr/lib/python2.7/site-packages/yum/repos.py. This is just for testing. 

--------------------------------------
    def doSetup(self, thisrepo = None):
...
         self._setup = True
         self.retrieveAllMD()
         self.ayum.plugins.run('postreposetup')
--------------------------------------

====>

--------------------------------------
    def doSetup(self, thisrepo = None):
...
         self._setup = True
         self.ayum.plugins.run('postreposetup')
         self.retrieveAllMD()
--------------------------------------

And, they confirmed that the problem was fixed.
The comment in [1] says that 
  "Metadata are downloaded in parallel just before postreposetup."

So, it seems that inserting self.retrieveAllMD() just before self.ayum.plugins.run('postreposetup') was by design. I'm not sure the reason, but any plugin requires that?

Can we fix this problem in yum side?

[1] http://yum.baseurl.org/gitweb?p=yum.git;a=commitdiff;h=a522869c21768d53c3861be9c0a2394a3930ad66

Version-Release number of selected component (if applicable):
Red Hat Enterprise Linux 7

How reproducible:
Always

Steps to Reproduce:
1. configure yum repositiry mirrors (some mirrors are not reachable)
2. configure fastestmirror plugin
3. run 'yum clean all' and 'yum repolist'

Actual results:
It tries to retrieve metadata from slower mirror.

# yum repolist
Loaded plugins: fastestmirror, langpacks                                      
http://test1.example.com/x86_64/repodata/repomd.xml: [Errno 12] Timeout on http://test1.example.com/x86_64/repodata/repomd.xml: (28, 'Connection timed out after 30002 milliseconds')                              
Trying other mirror.
...

Expected results:
It can retrieve the metadata from the fastest mirror soon as done in RHEL6.

Additional info:
Looks a regression from RHEL6.
Comment 18 errata-xmlrpc 2018-04-10 12:50:32 EDT
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2018:0919

Note You need to log in before you can comment on or make changes to this bug.