wrolpi/modules/repos
Roland 3245235185
Repo changes wait for a concurrent writer
Adding, importing, changing, deleting and updating a Repo read, then
wrote, in the request's deferred transaction, so they failed with a 500
("database is locked") when another connection wrote in between.  They
now write inside request.ctx.db.write().

Importing reads the clone with git and walks it for its size; those run
before the write transaction, so it is not held for them.  Everything
that can refuse the import still runs before the clone is changed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 08:20:13 -06:00
..
test Repo changes wait for a concurrent writer 2026-10-21 08:20:13 -06:00
__init__.py Add a Repos module that mirrors git repositories (#783) 2026-10-07 15:16:58 -06:00
api.py Repo changes wait for a concurrent writer 2026-10-21 08:20:13 -06:00
conftest.py Add a Repos module that mirrors git repositories (#783) 2026-10-07 15:16:58 -06:00
downloader.py Add a Repos module that mirrors git repositories (#783) 2026-10-07 15:16:58 -06:00
errors.py Add a Repos module that mirrors git repositories (#783) 2026-10-07 15:16:58 -06:00
lib.py Repo changes wait for a concurrent writer 2026-10-21 08:20:13 -06:00
models.py Model reprs read only loaded state (#819) 2026-10-11 16:47:32 -06:00
schema.py Add a Repos module that mirrors git repositories (#783) 2026-10-07 15:16:58 -06:00