couchbase / couchbase/xdcrDiffer
diffToJson could misprint CAS values
Open
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 9
- Forks
- 9
- PR merge metrics
- No merged PRs in 30d
Description
The CAS values as uint64 below, when marshalled, can become inaccurate because uint64 could lose precision when marshalling to a map to be printed.
func (differ *FilesDiffer) diffToJson() ([]byte, error) {
outputMap := map[string]interface{}{
"Mismatch": differ.BothExistButMismatch,
"MissingFromSource": differ.MissingFromFile1,
"MissingFromTarget": differ.MissingFromFile2,
}
ret, err := json.Marshal(outputMap)
return ret, err
}
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at FilesDiffer.diffToJson and inspect the CAS-valued fields included in outputMap. Verify how Go's JSON marshalling represents those uint64 values and define the expected JSON output so large CAS values remain accurate; consider the repository's existing test entry points when checking the result.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- tooling
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100