|
I'm writing test for the following case :
- Operation starts and fails due to serverless lock
- Lock is released
- Operation 2 is started, expected to fail as operation 1 isn't garbage collectable yet
- Calling forget on operation 1. Expect it to succeed.
- Operation 3 is started, expected to succeed as operation 1 is aborted and garbage collectable.
This does not work for TenantMigrationDonorService (it's the error highlighted above). It does not work either for split due to the following :
- forgetShardSplit succeeds and marks the future
- checkIfConflictsWithOtherInstances uses `isGarbageCollectable` and `getStateDocState()`
-
- As the shard split document is never created, these methods returns uninitialized values (they query _stateDoc).
|
|
Thanks for the update. The first issue makes sense to me, I think we probably just need to not reuse these replica sets for these tests for the time being. The second issue sounds like the ServerlessOperationLock is not working correctly for TMDS (and maybe also split, given the BFs we were seeing last week). Let's discuss more on the open PR, and see if we can add tests around this behavior.
|