Files
aptly/api
André Roth 9e91ee4c4a fix(publish): reload published inside task for create/drop endpoints
Affected endpoints: apiPublishRepoOrSnapshot (POST /api/publish/{prefix}),
apiPublishDrop (DELETE /api/publish/{prefix}/{distribution}).

Both handlers used the outer-scoped collectionFactory and collection
variables inside the task closure.  These were captured before the task
lock was acquired, so under concurrent load each task operated on a
stale DB view:

  apiPublishRepoOrSnapshot:  snapshot/localRepo LoadComplete,
  NewPublishedRepo, CheckDuplicate, Publish, and collection.Add all
  used the pre-lock collectionFactory/collection.  Two concurrent
  POST to same prefix could both pass CheckDuplicate (neither sees
  the other in the stale DB view) and race on disk writes.

  apiPublishDrop:  collection.Remove used pre-lock collection,
  potentially racing with concurrent updates/other drops.

Fix: inside the task closure create a fresh taskCollectionFactory and
taskCollection.  All DB reads (LoadComplete) and writes
(CheckDuplicate, Add, Remove, Publish) now run against the authoritative
DB state after the lock is held.
2026-05-25 10:36:16 +02:00
..
2025-08-20 19:41:26 +02:00
2025-04-26 13:29:50 +02:00
2024-10-01 01:07:09 +02:00
2026-01-11 14:26:56 +01:00
2026-01-11 14:26:56 +01:00
2026-04-26 17:44:25 +02:00
2026-05-04 11:35:55 +02:00
2024-12-11 10:40:44 +01:00
2023-02-20 13:42:50 +01:00
2026-04-26 18:37:36 +02:00
2026-05-04 11:35:55 +02:00
2024-12-11 11:19:46 +01:00
2026-05-04 11:35:55 +02:00
2026-04-26 23:56:05 +02:00
2024-12-11 10:40:44 +01:00
2024-12-11 10:40:44 +01:00
2024-12-11 11:19:46 +01:00