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

Kinto / kinto / 42055285457
100%
master: 100%

Build:
Build:
LAST BUILD BRANCH: fix-merge-patch-non-object
DEFAULT BRANCH: master
Ran 05 Nov 2026 03:31PM UTC
Jobs 3
Files 80
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

05 Nov 2026 03:28PM UTC coverage: 100.0%. Remained the same
42055285457

push

github

web-flow
Fix concurrent timestamp collision in bump_timestamp() (Fixes #3673, Fixes #602) (#3790)

* fix(storage): retry on timestamp collision with jittered backoff (#3673)

- Resolve IntegrityError collisions on idx_objects_parent_id_resource_name_last_modified
  using application-level retries instead of database-level advisory locks.
- Centralize mutating operations (create, update, delete, delete_all) through
  _execute_and_fetch_with_retry with continuous sub-millisecond jitter
  and bounded linear backoff.
- Wrap retries in conn.begin_nested() for managed request transactions
  (commit_manually = False) to prevent InFailedSqlTransaction errors.
- Bump storage schema version to 27 with clean native 1ms timestamp bump.
- Unskip test_timestamps_are_unique on CI and expand concurrency coverage.
- Add comprehensive unit tests covering collision retries, savepoint rollbacks,
  and unretried non-timestamp integrity errors.

Closes #3673, Closes #602

* style: fix trailing whitespace and code formatting

* refactor(storage): extract collision retry delay to module constants

* test: remove unrelated modified field filter tests

* fix: log exhausted timestamp collision retries

* fix: avoid duplicate timestamp collision logging

* docs: explain timestamp collision logging

* docs: explain timestamp collision index

* refactor: remove unnecessary timestamp schema migration

Keep the existing schema version and millisecond-based trigger logic.
Focus the change on retrying timestamp collisions without introducing a
database migration.

* test: simulate timestamp collisions during query execution

Make the database connection succeed and trigger collisions when SQL is
executed. This verifies the retry logic inside the nested transaction path.

* refactor: clarify timestamp retry delay units

Include the seconds unit in retry delay constant names to make their
values clear at the point of use.

* Run make format

* Use PostgreSQL diagnostics for timestamp collisions
... (continued)

1631 of 1631 branches covered (100.0%)

48 of 48 new or added lines in 3 files covered. (100.0%)

8304 of 8304 relevant lines covered (100.0%)

3.0 hits per line

Jobs
ID Job ID Ran Files Coverage
1 py311 - 42055285457.1 05 Nov 2026 03:32PM UTC 80
100.0
GitHub Action Run
2 py312 - 42055285457.2 05 Nov 2026 03:32PM UTC 80
100.0
GitHub Action Run
3 py310 - 42055285457.3 05 Nov 2026 03:32PM UTC 80
100.0
GitHub Action Run
Source Files on build 42055285457
  • Tree
  • List 80
  • Changed 3
  • Source Changed 0
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • 8a979310 on github
  • Prev Build on main (#42000076067)
  • Next Build on main (#42608752130)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc