Replace API call is not ACID compliant - possible to fail to replace but still remove the original
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 1.1k
- Forks
- 564
- Avg merge
- 2d 2h
- Merged PRs (30d)
- 29
Description
Relates to ticket IQSS/dataverse#9218 - we are seeing replacements fail but then the original is deleted. I believe the issue in IQSS/dataverse#9218 is exposing this edge case bug.
Please can the original not be deleted if the replacement fails - (all or nothing transaction for ACID compliance)?
This can be seen on V1/2/3 of this dataset:
https://dataverse.harvard.edu/dataset.xhtml?persistentId=doi:10.7910/DVN/ER7GJH
V1 uploads high_infections_plot.png (+7 other files)
V2 removes it (something our code would never call - this is the failed replacement) but replaced the other 7 files
V3 adds it again and replaces the other 7 files
V4 replaces all 8 files
Contributor guide
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 by reviewing related ticket IQSS/dataverse#9218 and reproducing the replacement behavior on dataset DOI:10.7910/DVN/ER7GJH across its V1–V4 versions. Trace the replacement API transaction path and verify that a failed replacement leaves the original file and other replacements unchanged.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- api, backend-api-design, databases
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100