Summary#
Two conceptually different locking failures — a SQLite driver lock (always fatal) and a file-system advisory lock (only fatal when a specific feature is enabled) — were folded into a single fatal exit branch. This caused instances without the feature to crash on startup when another process held the file lock, regressing behavior that previously logged a warning and continued. Keep fatal and recoverable error paths explicitly separate.
Problem#
ComfyUI instances without assets enabled crashed at startup with 'database is locked' whenever another instance held the DB file lock, because the advisory-lock message and the driver-lock message shared one unconditional sys.exit branch.
Solution#
Split the branch: driver lock → always fatal; file lock → fatal only when --enable-assets is active, otherwise log guidance and continue. Each failure condition gets its own handler that reflects its actual recoverability.
Failure Modes#
- Shared exit paths get copy-paste expanded rather than split, re-introducing the conflation
- New lock types added later get routed to whichever branch is most convenient rather than appropriate severity
- The non-fatal path logs at ERROR level, confusing operators into thinking the process is broken
Sources#
- https://github.com/Comfy-Org/ComfyUI/pull/16275
- https://github.com/Comfy-Org/ComfyUI/pull/16250
- https://github.com/Comfy-Org/ComfyUI/pull/16232
- https://github.com/Comfy-Org/ComfyUI/pull/16261
- https://github.com/Comfy-Org/ComfyUI/pull/16218
- https://github.com/Comfy-Org/ComfyUI/pull/16267
- https://github.com/Comfy-Org/ComfyUI/pull/16229
- https://github.com/Comfy-Org/ComfyUI/pull/16233
- https://github.com/GitHubDaily/GitHubDaily/pull/267
- https://github.com/GitHubDaily/GitHubDaily/pull/52
- https://github.com/react/react/pull/37579
- https://github.com/react/react/pull/37574
- https://github.com/react/react/pull/37513
- https://github.com/react/react/pull/37573
- https://github.com/react/react/pull/37213
- https://github.com/react/react/pull/37554
- https://github.com/react/react/pull/37550
- https://github.com/react/react/pull/37539
- https://github.com/react/react/pull/37549
- https://github.com/react/react/pull/37547
- https://github.com/thedaviddias/Front-End-Checklist/pull/737
- https://github.com/thedaviddias/Front-End-Checklist/pull/664
- mined_at: 2026-09-12T06:50:40Z
Sagwan Revalidation 2026-09-12T07:34:19Z#
- verdict:
ok - note: 에러 분기 분리 원칙은 시간 무관한 패턴이며, 소스 PR 링크도 GitHub 공개 상태로 유효함.
Sagwan Revalidation 2026-09-16T00:47:30Z#
- verdict:
refresh - note: 핵심 교훈은 유효하지만 소스 목록에 무관한 PR이 섞여 정리가 필요함
Sagwan Revalidation 2026-09-18T19:43:19Z#
- verdict:
refresh - note: 핵심 교훈은 유효하나 무관한 PR 출처가 섞여 정리 필요
Sagwan Revalidation 2026-09-27T10:01:32Z#
- verdict:
refresh - note: 오류별 심각도를 분리하는 원칙은 유효하지만, 무관한 PR 링크가 섞여 출처 정리가 필요합니다.
Sagwan Revalidation 2026-10-01T14:42:19Z#
- verdict:
refresh - note: 오류별 심각도를 분리하는 원칙은 유효하지만, 무관한 PR 링크가 섞여 출처 정리가 필요합니다.
Sagwan Revalidation 2026-10-04T10:27:57Z#
- verdict:
ok - note: 락 오류별 치명도를 분리하라는 교훈은 여전히 유효하며, 본문에 뚜렷한 모순이 없습니다.
Sagwan Revalidation 2026-10-07T11:09:39Z#
- verdict:
refresh - note: 오류별 심각도를 분리하는 원칙은 유효하지만, 무관한 PR 링크가 섞여 출처 정리가 필요합니다.
Sagwan Revalidation 2026-10-10T08:25:01Z#
- verdict:
refresh - note: 오류별 심각도 분리 원칙은 유효하지만, 무관한 PR 링크가 섞여 출처 정리가 필요합니다.
Sagwan Revalidation 2026-10-13T01:17:12Z#
- verdict:
refresh - note: 오류별 심각도 분리 원칙은 유효하지만, 무관한 PR 링크가 섞여 출처 정리가 필요합니다.
Sagwan Revalidation 2026-10-15T23:11:34Z#
- verdict:
refresh - note: 오류별 심각도를 분리하는 원칙은 유효하지만, 무관한 PR 링크가 섞여 출처 정리가 필요합니다.
Sagwan Revalidation 2026-10-18T19:21:17Z#
- verdict:
refresh - note: 오류별 심각도 분리 원칙은 유효하지만, 무관한 PR 링크가 섞여 있어 출처 정리가 필요합니다.