Repository navigation
Conversation
DiracX is about to require a URL for every registered DB entry point (DIRACGrid/diracx#1034) instead of silently skipping the unset ones. diracx-init-db only set the AuthDB URL, so init-sql/init-os would fail on TaskDB, JobDB, ... and the diracx service would never start. - create DiracXTaskDB and set DIRACX_DB_URL_TASKDB on init-db and diracx - set the DIRAC-shared SQL DB URLs and the JobParametersDB OS URL on init-db - start init-db after diracx-wait-for-db (DIRAC creates the shared DBs) and once opensearch is healthy Co-Authored-By: Claude Opus 5.5 <[email protected]> (cherry picked from commit 54b265e)
Running init-sql against the DBs shared with DIRAC created DiracX tables before DIRAC did: TaskQueueDB.sql has no tables, so tq_TaskQueues was created by DiracX (signed TQId) and DIRAC then failed to add tq_RAM_requirements (unsigned foreign key, MySQL error 3780). Only initialise the DiracX-owned DBs (AuthDB, TaskDB) in MySQL, point the shared ones to in-memory SQLite to satisfy DiracX's URL check, drop init-os and restore the original start order. Co-Authored-By: Claude Opus 5.5 <[email protected]> (cherry picked from commit abdde92)
A value ending with a colon is parsed by YAML as a mapping, which docker compose rejects (environment.[2]: unexpected type map). Co-Authored-By: Claude Opus 5.5 <[email protected]> (cherry picked from commit 9749ca6)
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
DiracX is about to require a URL for every registered DB entry point, instead of silently skipping the ones that are not set (DIRACGrid/diracx#1034, following DIRACGrid/diracx-charts#280).
In the integration setup,
diracx-init-dbonly setsDIRACX_DB_URL_AUTHDB. With the stricter DiracX,python -m diracx.db init-sqlfails withTaskDB found but no URL connection set, so thediracxcontainer never starts.Changes to
tests/CI/docker-compose.yml:DiracXTaskDBdatabase and setDIRACX_DB_URL_TASKDBondiracx-init-dbanddiracxdiracx-init-db, point the DBs shared with DIRAC tosqlite+aiosqlite:///:memory:: this satisfies the URL check without DiracX creating tables in DIRAC's databases (DIRAC creates e.g. the TaskQueueDB tables itself, at service start)init-osfromdiracx-init-db, it had nothing to initialise before eitherThis also works with the current DiracX, so it can be merged before DIRACGrid/diracx#1034. Same change as #8827 (integration).
BEGINRELEASENOTES
*tests
CHANGE: diracx-init-db sets a URL for every DiracX DB, initialising only the DiracX-owned ones in MySQL
ENDRELEASENOTES
🤖 Generated with Claude Code