mirror of
https://github.com/paperclipai/paperclip.git
synced 2026-10-24 18:19:05 +02:00
fix: prevent run identity locks from blocking audit checks (#14478)
Use NO KEY UPDATE for identity locks so audit foreign-key checks can proceed while identity writers remain serialized. Preserve task-before-run ordering, company scoping, and foreign keys. Verified with PostgreSQL concurrency regressions, focused tests, typecheck, build, and full CI. Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
1 parent
faf72cb1d5
commit
4f6cf5b3ff
3 files changed
+65
-9
No files matched your search
@@ -165,6 +165,15 @@ idempotent actor synchronization operations, not arbitrary transactions. A
|
||||
persistent outage still fails the request after the bounded retries; each
|
||||
connection attempt remains subject to the configured database connect timeout.
|
||||
|
||||
## Execution identity row locks
|
||||
|
||||
Identity initialization, credential acquisition, and steering reconciliation lock
|
||||
the task before its run. These operations use `FOR NO KEY UPDATE`: they change
|
||||
identity state, not parent keys. The lock still serializes identity writers and
|
||||
blocks concurrent task or run updates. It allows audit inserts to retain their
|
||||
foreign-key `KEY SHARE` locks without waiting on identity acquisition. The audit
|
||||
foreign keys and their deletion behavior remain enforced.
|
||||
|
||||
## Switching between modes
|
||||
|
||||
The database mode is controlled by `DATABASE_URL`:
|
||||
|
||||
Reference in new issue
Block a user