Project

Profile

Help

Issue #1646

closed

It is theoretically possible for a v2 sync to enter an infinite recursion loop

Added by rbarlow about 8 years ago. Updated about 5 years ago.

Status:
CLOSED - CURRENTRELEASE
Priority:
Normal
Start date:
Due date:
Estimated time:
Severity:
2. Medium
Version - Docker:
Platform Release:
2.8.5
Target Release - Docker:
2.0.2
OS:
Triaged:
Yes
Groomed:
No
Sprint Candidate:
No
Tags:
Pulp 2
Sprint:
Sprint 2
Quarter:

Description

While looking through the code, it occurred to me that this line could theoretically cause the function it is part of to be called synchronously:

https://github.com/pulp/pulp_docker/blob/da01945c8ee40ffaf680c4064bdd3872bf72dd50/plugins/pulp_docker/plugins/importers/sync.py#L354

If something were to go wrong in acquiring an auth token or with Docker's ability to inspect auth tokens, and we submitted a new request on this line and it failed the same way, download_failed() would get called again inside itself. This could happen a large number of times, leading to the famous MaxRecursionDepthExceeded exception.

As this is theoretical (but not impossible - all it would take is for Docker to have a failure in checking their auth tokens), I'll leave it to the triage team to decide on target release.


Related issues

Related to Docker Support - Issue #1644: Users cannot download Blobs in parallelCLOSED - CURRENTRELEASEamacdona@redhat.comActions

Also available in: Atom PDF