[JIRA] (OVIRT-2814) reposync fails syncing repos on completely unrelated paths (concurrency issue?)

[ https://ovirt-jira.atlassian.net/browse/OVIRT-2814?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=39918#comment-39918 ] Barak Korren edited comment on OVIRT-2814 at 10/22/19 1:54 PM: --------------------------------------------------------------- {quote} correct me if I’m worng but no real fix has been included right? lock file has just been removed and we’re going to see this happen again sooner or later. {quote} Ok, I see what you talk about now, I missed the fact that the failure was in a job for a different mirror. To solve this, we need to make sure that when we sync repo X, the {{reposync}} command only sees the part of "{{mirrors-reposync.conf}}" that is relevant for repo X. It should probably be doable by adding a {{sed}} command to {{mirror_mgr.sh}} that will remove the unneeded repos from the file before running {{reposync}}. [~accountid:5b25ec3f8b08c009c48b25c9] this is exactly what we've talked about before you left today... was (Author: bkorren@redhat.com): {quote} correct me if I’m worng but no real fix has been included right? lock file has just been removed and we’re going to see this happen again sooner or later. {quote} Ok, I see whay you talk about now, I missed the fact that the failure was in a job for a different mirror. To solve this, we need to make sure that when we sync repo X, the {{reposync}} command only sees the part of "{{mirrors-reposync.conf}}" that is relevant for repo X. It should probably be doable by adding a {{sed}} command to {{mirror_mgr.sh}} that will remove the unneeded repos from the file before running {{reposync}}. [~accountid:5b25ec3f8b08c009c48b25c9] this is exactly what we've talked about before you left today...
reposync fails syncing repos on completely unrelated paths (concurrency issue?) -------------------------------------------------------------------------------
Key: OVIRT-2814 URL: https://ovirt-jira.atlassian.net/browse/OVIRT-2814 Project: oVirt - virtualization made easy Issue Type: By-EMAIL Components: CI Mirrors Reporter: Sandro Bonazzola Assignee: infra
About job https://jenkins.ovirt.org/job/system-sync_mirrors-centos-kvm-common-el7-x86_... As you can see below 05:35:07 ++ reposync --config=jenkins/data/mirrors-reposync.conf --repoid=centos-kvm-common-el7 --arch=x86_64 --cachedir=/home/jenkins/mirrors_cache --download_path=/var/www/html/repos/yum/centos-kvm-common-el7/base --norepopath --newest-only --urls --quiet the sync is related to "/var/www/html/repos/yum/centos-kvm-common-el7/base" using as cache directory "/home/jenkins/mirrors_cache" but in "/home/jenkins/mirrors_cache" there's "/home/jenkins/mirrors_cache/fedora-base-fc29": 05:35:16 Traceback (most recent call last): 05:35:16 File "/usr/bin/reposync", line 373, in <module> 05:35:16 main() 05:35:16 File "/usr/bin/reposync", line 185, in main 05:35:16 my.doRepoSetup() 05:35:16 File "/usr/lib/python2.7/site-packages/yum/__init__.py", line 681, in doRepoSetup 05:35:16 return self._getRepos(thisrepo, True) 05:35:16 File "/usr/lib/python2.7/site-packages/yum/__init__.py", line 721, in _getRepos 05:35:16 self._repos.doSetup(thisrepo) 05:35:16 File "/usr/lib/python2.7/site-packages/yum/repos.py", line 157, in doSetup 05:35:16 self.retrieveAllMD() 05:35:16 File "/usr/lib/python2.7/site-packages/yum/repos.py", line 88, in retrieveAllMD 05:35:16 dl = repo._async and repo._commonLoadRepoXML(repo) 05:35:16 File "/usr/lib/python2.7/site-packages/yum/yumRepo.py", line 1468, in _commonLoadRepoXML 05:35:16 local = self.cachedir + '/repomd.xml' 05:35:16 File "/usr/lib/python2.7/site-packages/yum/yumRepo.py", line 777, in <lambda> 05:35:16 cachedir = property(lambda self: self._dirGetAttr('cachedir')) 05:35:16 File "/usr/lib/python2.7/site-packages/yum/yumRepo.py", line 760, in _dirGetAttr 05:35:16 self.dirSetup() 05:35:16 File "/usr/lib/python2.7/site-packages/yum/yumRepo.py", line 738, in dirSetup 05:35:16 self._dirSetupMkdir_p(dir) 05:35:16 File "/usr/lib/python2.7/site-packages/yum/yumRepo.py", line 715, in _dirSetupMkdir_p 05:35:16 raise Errors.RepoError, msg 05:35:16 yum.Errors.RepoError: Error making cache directory: /home/jenkins/mirrors_cache/fedora-base-fc29 error was: [Errno 17] File exists: '/home/jenkins/mirrors_cache/fedora-base-fc29' this looks like a concurrency issue, a lock should be used in order to prevent two instances to use the same cache directory at the same time or use separate cache directories for different repos. -- Sandro Bonazzola
-- This message was sent by Atlassian Jira (v1001.0.0-SNAPSHOT#100114)
participants (1)
-
Barak Korren (oVirt JIRA)