Skip to content

feat: make Pulp concurrent request limit configurable, raise to 20#1206

Open
andrewlukoshko wants to merge 1 commit intomasterfrom
increase-pulp-semaphore-limit
Open

feat: make Pulp concurrent request limit configurable, raise to 20#1206
andrewlukoshko wants to merge 1 commit intomasterfrom
increase-pulp-semaphore-limit

Conversation

@andrewlukoshko
Copy link
Copy Markdown
Member

Summary

  • Add pulp_semaphore_limit setting to config.py (default 20, configurable via PULP_SEMAPHORE_LIMIT env var)
  • Replace hardcoded asyncio.Semaphore(5) in pulp_client.py with asyncio.Semaphore(settings.pulp_semaphore_limit)
  • Scripts that override PULP_SEMAPHORE directly (errata_fix_script, backup_beta_repos, etc.) continue to work unchanged

The previous limit of 5 was a significant bottleneck for parallel Pulp operations: errata releases (10+ repos), build artifact uploads (5-20 artifacts), and release planning all queue far more concurrent requests.

Test plan

  • Full test suite passes (82 passed, 11 skipped)
  • Config field loads with default value of 20
  • PULP_SEMAPHORE_LIMIT env var override works
  • Test fixture monkeypatch pattern (tests/fixtures/pulp.py:31) still works
  • Script override pattern (PULP_SEMAPHORE = asyncio.Semaphore(10)) still works
  • Monitor Pulp server load after deployment — adjust via env var if needed

The hardcoded PULP_SEMAPHORE of 5 serializes most parallel Pulp
operations. Errata releases (10+ repos x modify + publish), build
artifact uploads (5-20 create_entity calls), and release planning
all queue far more than 5 concurrent requests.

Add a pulp_semaphore_limit setting to config (configurable via
PULP_SEMAPHORE_LIMIT env var) with a default of 20. Scripts that
override PULP_SEMAPHORE directly continue to work.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant