mirror of
https://github.com/projectsend/projectsend.git
synced 2026-10-06 13:21:56 +00:00
c77d80309e
Found in review, none of them reachable in our shipped setups but each cheap to close: - Two chunks could adopt the same path when more than one worker runs the default queue: a run that stalls unblocks a new one after five minutes, and the old chain can resume beside it. Two rows on one set of bytes means deleting either deletes the other's file. Each path is now claimed under a cache lock and checked for a row inside it, so a path another chunk holds is left to it. A lock around the whole chunk was tried first and dropped: a chunk queues the next one while it still holds the lock, so the next one was discarded and the run died. - A chunk now checks that the account that started the run is still active, still staff and still holds import_orphans. A run can outlast that access, and every chunk adopts files in that person's name. - A failure shows a plain sentence and sends the exception to the log. A storage error can name a bucket, an endpoint or a path.