galaxyproject / galaxyproject/cloudman

Race condition for bulk project creation

Open
#132 4 comments 0 reactions 0 assignees View on GitHub
good first issue help wanted
Dominant language
Python
Stars
38
Forks
23
PR merge metrics
No merged PRs in 30d

Description

Following https://github.com/galaxyproject/cloudman/commit/75cfd31cffc36a59db404f2b6317e1d28a8632cd there is a race condition when using `projman_load_config.py` to create projects in bulk.
The OIDC client secret injection in context, for all apps except the data browser, relies on the secret deployed by the `projman` chart. While this is fine when creating a project manually and adding subsequent apps, because `projman` gets deployed by the API when creating the project, when installing apps in bulk _right after_ creation (as is the case when using `projman_load_config.py`, it happens that some apps get deployed with `context.project.oidc_client_secret` still being `None` which subsequently breaks logins.
Solution is likely to just special case `projman` to allow that context value to be empty for that deployment, but make the API retry a few times for other apps rather than accepting the empty context value.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with projman_load_config.py and trace the bulk project-creation flow through the API and projman chart deployment. Inspect how context.project.oidc_client_secret is populated for projman and subsequent apps. Done means bulk-created apps no longer receive an empty secret and logins work reliably after creation.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
api, backend, devops
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.