• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

MerginMaps / server / 24395881105
93%
master: 92%

Build:
Build:
LAST BUILD BRANCH: dev-r117-maps-app
DEFAULT BRANCH: master
Ran 14 Apr 2026 11:28AM UTC
Jobs 1
Files 68
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

14 Apr 2026 11:12AM UTC coverage: 93.2% (-0.05%) from 93.248%
24395881105

Pull #610

github

varmar05
Rework concurrent upload using upsert strategy

Replace the old try/except IntegrityError + cleanup loop pattern with an atomic upsert in Upload.create_upload().
Decouple the upload directory name from the DB primary key via transaction_id. Upload directory is created at this stage, no need to take care for it later.

With the upsert logic, the ObjectDeletedError scenario which happened because a concurrent request could delete a stale upload row mid-operation is eliminated:
  - During push_finish, the heartbeat context manager continuously updates last_ping, keeping the upload fresh
  throughout the operation
  - A concurrent request can only take over an upload whose last_ping has expired
  - Since heartbeat prevents expiry, no other request can claim the row while push_finish is running
  - The upload object therefore stays valid for the full lifetime of the request — ObjectDeletedError becomes
  impossible
Pull Request #610: rework concurrent upload

156 of 165 new or added lines in 8 files covered. (94.55%)

7 existing lines in 3 files now uncovered.

9114 of 9779 relevant lines covered (93.2%)

0.93 hits per line

Uncovered Changes

Lines Coverage ∆ File
4
89.78
0.43% server/mergin/sync/public_api_v2_controller.py
3
93.31
-0.63% server/mergin/sync/models.py
2
92.89
-0.05% server/mergin/sync/public_api_controller.py

Coverage Regressions

Lines Coverage ∆ File
5
93.31
-0.63% server/mergin/sync/models.py
1
92.89
-0.05% server/mergin/sync/public_api_controller.py
1
89.78
0.43% server/mergin/sync/public_api_v2_controller.py
Jobs
ID Job ID Ran Files Coverage
1 24395881105.1 14 Apr 2026 11:28AM UTC 68
93.2
GitHub Action Run
Source Files on build 24395881105
  • Tree
  • List 68
  • Changed 9
  • Source Changed 9
  • Coverage Changed 8
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #24395881105
  • Pull Request #610
  • PR Base - develop (#24185625376)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc