Skip to content

RMST-502: add ADR with possible solutions for missing tombstones - #1477

Open
leplatrem wants to merge 2 commits into
mainfrom
rmst-502-3
Open

RMST-502: add ADR with possible solutions for missing tombstones#1477
leplatrem wants to merge 2 commits into
mainfrom
rmst-502-3

Conversation

@leplatrem

Copy link
Copy Markdown
Contributor

What we had in this ticket:
https://mozilla-hub.atlassian.net/browse/RMST-502
in an ADR form...

@Dexterp37 Dexterp37 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for the comprehensive and well written ADR.


Tags are files on disk and slow down git operations, so the export job deletes the ones older than 30 days (`TAGS_MAX_AGE_DAYS`). Clients coming with a `_since` timestamp that has no matching tag are redirected to the full changeset ([#1474](https://github.com/mozilla/remote-settings/pull/1474)).

A full changeset contains only the live records and has no tombstone. Therefore, if records were deleted in the meantime, these clients never learn about the deletions, and **clients that do not verify signatures silently keep obsolete records in their local data**.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For my ignorant understanding (and future onboarding), would you kindly add a link to some documentation (or add a brief explanation) of what a tombstone is in this context?

A full changeset contains only the live records and has no tombstone. Therefore, if records were deleted in the meantime, these clients never learn about the deletions, and **clients that do not verify signatures silently keep obsolete records in their local data**.

Clients verifying signatures catch up on retry: the signature covers the live record set, so the extraneous records make verification fail, and the client wipes its local data and pulls again.
The Application-Service Rust client do have the signature verification feature, but it is not enabled on iOS or Android builds ([Bug 2063304](https://bugzilla.mozilla.org/show_bug.cgi?id=2063304)).

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we know why it's not enabled? Is it because it's not working due to this?

@alexcottner alexcottner left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we should do both A and E.

On the bright side, this does not impact any ESR clients. Impacted clients would correct once signature verification fails with an updated version.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants