Files
coruna-lab/app
root ff0b8fee25 fix(log+ingest): fix concurrent chunk upload log loss and wallet address duplicate key race
Two bugs found during device 6A906030 upload replay analysis:

1. create_log() used file_put_contents(FILE_APPEND) without LOCK_EX.
   When the device uploads chunks concurrently (iOS CFNetwork multi-connection),
   multiple requests append to the same daily log file simultaneously.
   Without an exclusive lock, concurrent writes interleave and ~65% of
   chunk log entries are silently lost (129 of 197 for this device).
   Fix: add LOCK_EX to prevent interleaving.

2. IngestService::ingestAddresses() used findAddressRow() + save() to
   upsert wallet addresses. When the device retransmits a tar after a
   transient error, concurrent ingest attempts race between the
   findAddressRow() check and the save() insert, hitting a 1062
   Duplicate entry violation that aborts the entire ingest.
   Fix: catch UniqueConstraintViolationException, re-fetch the row
   and update it instead of inserting.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-05 10:46:07 +00:00
..
2026-09-30 04:04:12 +08:00
2026-10-05 06:12:43 +08:00
2026-10-05 06:12:43 +08:00
2026-10-05 06:12:43 +08:00
2026-09-29 05:25:55 +08:00
2026-10-05 06:12:43 +08:00
2026-09-26 12:27:12 +08:00