Details
-
Bug
-
Resolution: Fixed
-
Major
-
None
-
Triaged
-
1
-
No
-
KV-Engine Sprint 2020-Dec
Description
Some cases with the ADM here. Believe the PDM is fine as everything is driven via DCP. Think that this is also an issue for expiry though.
Looks like we can do the following:
- Create collection
- Create prepare in collection
- Put prepare in resolvedQ in ADM
- Drop collection
- Resurrect collection (same cid but new generation)
- Commit prepare belonging to old collection to the new one
Another case:
- Create collection
- Create prepare in collection
- Drop collection
- Resurrect collection (same cid but new generation)
- Create prepare in collection (fails as prepare already exists but it should be logically deleted)
This one is interesting as the failure is temporary (SyncWriteInProgress) and should eventually go away after the collection eraser runs. Resurrection should be a failure case and this could be considered acceptable.
- Create collection
- Create prepare in collection
- Drop collection
- Resurrect collection (same cid but new generation)
- Seqno ack old prepare enough to make it eligible for commit
This case unnecessarily schedules the completion task (but would require locking collections manifest to test if the collection is still valid).