sillsdev / sillsdev/harmony

One commit authored in the future could throw off everything

Open
#7 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C#
Stars
14
Forks
4
Avg merge
3d 21h
Merged PRs (30d)
3

Description

Right now if a computer were to have it's clock set for 2030, and it made commits and synced them, then with our hybrid logical clock we would always use that as the start date which would throw off the dates basically forever (or till 2030 in this example).

It's probably safe to say that the server will never get far out of sync, so we could just have the server reject commits from the future, 5 min in the future further more and it gets rejected?

However if we did that then a user would need some way to correct the dates on their commits so they could get back in sync. I'm not sure the best way to do that, and it could get complicated if you mix in offline sync, because those commits could have been sent somewhere else.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No files or tests are named. Start by tracing the hybrid logical clock and commit sync path, then determine how future timestamps are rejected and how users correct them without breaking offline sync; done requires an agreed behavior for both rejection and recovery.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
distributed-systems
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.