Project

Profile

Help

Issue #1646

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

Added by rbarlow over 4 years ago. Updated over 1 year 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 - CURRENTRELEASE<a title="Actions" class="icon-only icon-actions js-contextmenu" href="#">Actions</a>

Associated revisions

Revision da9c008e View on GitHub
Added by Austin Macdonald over 4 years ago

Download docker blobs in parallel

closes #1644 closes #1646

Allow Nectar to download with multiple threads at the same time, and allow each thread to update the session's bearer token. It also addresses the possibility of infinite recursion if a download remains unauthorized after retrieving a new token.

Revision da9c008e View on GitHub
Added by Austin Macdonald over 4 years ago

Download docker blobs in parallel

closes #1644 closes #1646

Allow Nectar to download with multiple threads at the same time, and allow each thread to update the session's bearer token. It also addresses the possibility of infinite recursion if a download remains unauthorized after retrieving a new token.

Revision da9c008e View on GitHub
Added by Austin Macdonald over 4 years ago

Download docker blobs in parallel

closes #1644 closes #1646

Allow Nectar to download with multiple threads at the same time, and allow each thread to update the session's bearer token. It also addresses the possibility of infinite recursion if a download remains unauthorized after retrieving a new token.

Revision da9c008e View on GitHub
Added by Austin Macdonald over 4 years ago

Download docker blobs in parallel

closes #1644 closes #1646

Allow Nectar to download with multiple threads at the same time, and allow each thread to update the session's bearer token. It also addresses the possibility of infinite recursion if a download remains unauthorized after retrieving a new token.

History

#1 Updated by bmbouter over 4 years ago

  • Related to Issue #1644: Users cannot download Blobs in parallel added

#2 Updated by bmbouter over 4 years ago

  • Target Release - Docker set to 2.0.1
  • Triaged changed from No to Yes

#3 Updated by mhrivnak over 4 years ago

  • Platform Release set to 2.8.2

#4 Updated by mhrivnak over 4 years ago

  • Sprint/Milestone set to 19

#5 Updated by amacdona@redhat.com over 4 years ago

  • Status changed from NEW to ASSIGNED
  • Assignee set to amacdona@redhat.com

#6 Updated by amacdona@redhat.com over 4 years ago

  • Status changed from ASSIGNED to POST

#7 Updated by semyers over 4 years ago

  • Platform Release changed from 2.8.2 to 2.8.3

#9 Updated by semyers over 4 years ago

  • Platform Release changed from 2.8.3 to 2.8.4

#10 Updated by semyers over 4 years ago

  • Target Release - Docker changed from 2.0.1 to 2.0.2

#11 Updated by mhrivnak over 4 years ago

  • Sprint/Milestone changed from 19 to 20

#12 Updated by Anonymous over 4 years ago

  • Status changed from POST to MODIFIED
  • % Done changed from 0 to 100

#13 Updated by semyers over 4 years ago

  • Status changed from MODIFIED to 5

#14 Updated by semyers over 4 years ago

  • Platform Release changed from 2.8.4 to 2.8.5

#15 Updated by semyers over 4 years ago

  • Status changed from 5 to MODIFIED

#16 Updated by semyers over 4 years ago

  • Status changed from MODIFIED to 5

#17 Updated by semyers over 4 years ago

  • Status changed from 5 to CLOSED - CURRENTRELEASE

#18 Updated by bmbouter over 2 years ago

  • Sprint set to Sprint 2

#19 Updated by bmbouter over 2 years ago

  • Sprint/Milestone deleted (20)

#20 Updated by bmbouter over 1 year ago

  • Tags Pulp 2 added

Please register to edit this issue

Also available in: Atom PDF