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.

Assessment

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

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.

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.

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

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.

More from sillsdev/harmony

All issues in sillsdev/harmony

Similar issues

More C# issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.