EF warning 20504 (multiple collection includes) + DEPLOYMENT.md §8.1 nested-daemon gap #77
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Two follow-ups from the 2026-08-16 production debugging session (doujin-manager crash-loop after the #66 non-root hardening).
Part A — EF Core warning 20504
Production logs showed
Compiling a query which loads related collections for more than one collection navigation ... SingleQueryonGET /api/doujins/{id}andGET /api/variants/{id}. Two more sites compile the same way even though the log window didn't catch them:DoujinService.ListAsync(Titles+Variants) and theSearchServicepaged doujin query (7 collection navigations).Fix:
.AsSplitQuery()on these read-only detail/list/search queries (no globalUseQuerySplittingBehavior— keep the change surgical). Tests: configureRelationalEventId.MultipleCollectionIncludeWarningto throw and assert each site passes — one test per site so removing anAsSplitQuerykills exactly its named test.Part B — DEPLOYMENT.md §8.1 nested-daemon gap
This deployment runs umbrel → portainer dind (
portainer_docker_1, dockerd atunix:///data/docker.sock, data-root/data/data) → doujin-manager. Inside dind, thedocker run --rm -v <stack>_db:/data alpine chownrepair can't reach the volume: no default socket, no TLS certs, volumes not under /var/lib/docker. What works:docker execinto the dind container and chown the volume directory directly:Add a short paragraph covering this.
Ref trace: crash was
SQLite Error 8: attempt to write a readonly databaseonSqliteHistoryRepository.AcquireDatabaseLockAsync— root-owned DB in a pre-#66 volume vs uid 1654; resolved live by exactly this chown.