Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 698474 - sys-apps/portage-2.3.78: custom local mirrors can trigger infinite recursion in fetch
Summary: sys-apps/portage-2.3.78: custom local mirrors can trigger infinite recursion ...
Status: RESOLVED FIXED
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Core (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Portage team
URL:
Whiteboard:
Keywords: InVCS, REGRESSION
Depends on:
Blocks: 697734
  Show dependency tree
 
Reported: 2019-10-24 19:26 UTC by Zac Medico
Modified: 2019-10-24 19:40 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Zac Medico gentoo-dev 2019-10-24 19:26:04 UTC
If you have a local mirror in /etc/portage/mirrors then it can trigger infinite recursion when `repoman manifest` attempts to fetch a file:

>   File "/usr/lib64/python3.6/site-packages/portage/package/ebuild/fetch.py", line 1131, in fetch
>     loc = loc()
>   File "/usr/lib64/python3.6/site-packages/portage/package/ebuild/fetch.py", line 424, in get_mirror_url
>     mysettings, force=1, try_mirrors=0):
>   File "/usr/lib64/python3.6/site-packages/portage/package/ebuild/fetch.py", line 1131, in fetch
>     loc = loc()
>   File "/usr/lib64/python3.6/site-packages/portage/package/ebuild/fetch.py", line 424, in get_mirror_url
>     mysettings, force=1, try_mirrors=0):
>   File "/usr/lib64/python3.6/site-packages/portage/package/ebuild/fetch.py", line 1131, in fetch
>     loc = loc()
>   File "/usr/lib64/python3.6/site-packages/portage/package/ebuild/fetch.py", line 424, in get_mirror_url
>     mysettings, force=1, try_mirrors=0):
>   File "/usr/lib64/python3.6/site-packages/portage/package/ebuild/fetch.py", line 611, in fetch
>     pkgdir, mysettings["DISTDIR"]).getTypeDigests("DIST")
>   File "/usr/lib64/python3.6/site-packages/portage/repository/config.py", line 424, in load_manifest
>     return manifest.Manifest(*args, **kwds)
>   File "/usr/lib64/python3.6/site-packages/portage/manifest.py", line 168, in __init__
>     self._read()
>   File "/usr/lib64/python3.6/site-packages/portage/manifest.py", line 218, in _read
>     self._readManifest(self.getFullname(), myhashdict=self.fhashdict)
>   File "/usr/lib64/python3.6/site-packages/portage/manifest.py", line 207, in _readManifest
>     self._parseDigests(f, myhashdict=myhashdict, **kwargs)
>   File "/usr/lib64/python3.6/site-packages/portage/manifest.py", line 237, in _parseDigests
>     for myentry in self._parseManifestLines(mylines):
>   File "/usr/lib64/python3.6/site-packages/portage/manifest.py", line 227, in _parseManifestLines
>     myentry = parser(myline)
>   File "/usr/lib64/python3.6/site-packages/portage/manifest.py", line 88, in parseManifest2
>     name=match.group(2), hashes=hashes)
> RecursionError: maximum recursion depth exceeded while calling a Python object
Comment 1 Larry the Git Cow gentoo-dev 2019-10-24 19:31:20 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/proj/portage.git/commit/?id=26fd7ffdd5b74af3aeedf0e6a87ac6b3d1243848

commit 26fd7ffdd5b74af3aeedf0e6a87ac6b3d1243848
Author:     Zac Medico <zmedico@gentoo.org>
AuthorDate: 2019-10-24 19:28:40 +0000
Commit:     Zac Medico <zmedico@gentoo.org>
CommitDate: 2019-10-24 19:29:26 +0000

    fetch: respect try_mirrors parameter for local mirrors
    
    This is needed in order to prevent infinit recursion like this:
    
      File "portage/package/ebuild/fetch.py", line 1131, in fetch
        loc = loc()
      File "portage/package/ebuild/fetch.py", line 424, in get_mirror_url
        mysettings, force=1, try_mirrors=0):
      File "portage/package/ebuild/fetch.py", line 1131, in fetch
        loc = loc()
    
    Bug: https://bugs.gentoo.org/698474
    Signed-off-by: Zac Medico <zmedico@gentoo.org>

 lib/portage/package/ebuild/fetch.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Comment 2 Larry the Git Cow gentoo-dev 2019-10-24 19:40:36 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f13f09de05113a98cecb840b4e6343002fcbc101

commit f13f09de05113a98cecb840b4e6343002fcbc101
Author:     Zac Medico <zmedico@gentoo.org>
AuthorDate: 2019-10-24 19:37:51 +0000
Commit:     Zac Medico <zmedico@gentoo.org>
CommitDate: 2019-10-24 19:40:29 +0000

    sys-apps/portage: 2.3.78-r1 revbump for bug 698474
    
    Closes: https://bugs.gentoo.org/698474
    Bug: https://bugs.gentoo.org/697734
    Package-Manager: Portage-2.3.78, Repoman-2.3.17
    Signed-off-by: Zac Medico <zmedico@gentoo.org>

 sys-apps/portage/{portage-2.3.78.ebuild => portage-2.3.78-r1.ebuild} | 3 +++
 1 file changed, 3 insertions(+)