pulp / pulp/pulpcore

Document how Pulp handles the ServerDisconnectedError and why

Open
#1,888 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Documentation Katello Task Wishlist
Dominant language
Python
Stars
598
Forks
168
Avg merge
1d 4h
Merged PRs (30d)
86

Description

Author: @goosemania (ttereshc)

Redmine Issue: 6624, https://pulp.plan.io/issues/6624


A new FAQ page

Create a new FAQ page and have this be the first FAQ. This should be a top-level page on the left-side of the navigation.

Behavior to document

At open floor today we touched on how Pulp 3 does not have retry logic in these cases:

  • the server hanging up the TCP connection
  • network errors which cause TCP hangups
  • http errors other than [429, 502, 503, 504]

Reasoning why

Two issues would occur if Pulp had a broad retry behavior such as in the cases above:

  1. If the server says stop by hanging up Pulp should stop. Similarly if the network delivers TCP segments so slowly TCP times our.

  2. If pulp did continue an actual network error would become a very slow failure, tons of retries for each content unit slowly failing one by one over hours

What can users who want retry do?

Users can restart their sync tasks. Pulp saves all the content it did receive on the timed-out sync, so the next time it syncs it doesn't need to redownload what it already got. Therefore when users do retry they effectively resume whenever the network and server is ready for that.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by locating the existing documentation FAQ pages and the configuration for the left-side navigation. Add a top-level FAQ entry covering the listed ServerDisconnectedError cases, the reasons broad retries are avoided, and how restarting sync tasks resumes from saved content.

Written by the indexing model from the issue text.

Assessment

Domain
documentation
Issue type
Documentation
Difficulty
2/5
Estimated time
Half a day
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.