MerginMaps / MerginMaps/mobile

Handle critical sync errors on pull

Open
#3,908 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug data corruption - sync failure - crash - anr sync
Dominant language
C++
Stars
388
Forks
87
Avg merge
2d 7h
Merged PRs (30d)
20

Description

In rare cases, it can happen that pull of a project fails for some reason in MerginApi::finalizeProjectPullApplyDiff(). There are multiple cases of critical errors that are not handled, especially the branch that reports server file assembly failed - these errors currently pass silently, and unfortunately user unknowingly ends up with a broken project. Any further pulls and pushes are prone more failures and possible data corruption. We should instead fail early - at the time we detect the pull did not went well - either by marking the local project as broken, or even better by rolling back to the version before the pull.

Contributor guide

Open the contributing guide

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

Start in MerginApi::finalizeProjectPullApplyDiff() and trace the branch reporting "server file assembly failed". Done means critical pull failures are surfaced immediately and the local project is either marked broken or restored to its pre-pull version, rather than allowing later pulls and pushes against a broken project.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
data, mobile
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.