[SERVER-61583] Add restart test for retryable internal transactions for findAndModify Created: 18/Nov/21  Updated: 29/Oct/23  Resolved: 27/Jan/22

Status: Closed
Project: Core Server
Component/s: None
Affects Version/s: None
Fix Version/s: 5.3.0

Type: Task Priority: Major - P3
Reporter: Cheahuychou Mao Assignee: Cheahuychou Mao
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
depends on SERVER-60540 [Retryability] Add retryability suppo... Closed
Related
related to SERVER-61409 Investigate the cause of invalidated ... Closed
is related to SERVER-58410 Discontinue writing to appliedThrough... Closed
Backwards Compatibility: Fully Compatible
Sprint: Sharding 2022-01-24, Sharding 2022-02-07
Participants:

 Description   

Due to the issue investigated in SERVER-61409, retryable findAndModify both inside and outside transactions are not expected to be retryable after restart since the secondary from before restart can end up with invalid config.image_collections entries. This ticket is to add test coverage for this for findAndModify in retryable internal transactions. That is, if after restart:

  • If a secondary has a config.image_collection entry with "invalidatedReason":"minvalid suggests inconsistent snapshot" and if
    • The secondary steps up, verify that retries fail with InCompleteTransactionHistory
    • The secondary does not step up verify that the shard fails the dbhash check
  • If no secondaries have an invalid config.image_collection entry, verify the retries succeed.


 Comments   
Comment by Githook User [ 27/Jan/22 ]

Author:

{'name': 'Cheahuychou Mao', 'email': 'mao.cheahuychou@gmail.com', 'username': 'cheahuychou'}

Message: SERVER-61583 Add restart test for retryable internal transactions for findAndModify
Branch: master
https://github.com/mongodb/mongo/commit/5b6ea8f5673efd2062c0caf6bc4e7dbcd39d159e

Comment by Jack Mulrow [ 11/Jan/22 ]

When we add concurrency testing for internal transactions we expect to get coverage for this, so making this ticket 6.0 desired.

Comment by Jason Chan [ 22/Nov/21 ]

I think it depends on the approach of SERVER-58410. If we change the untimestamped writes to minValid on stepUp/ shutdown to be all timestamped, then my guess is that we should probably stop seeing invalidated images after a restart. However, I think it'll still be useful to have targeted test coverage for this to make sure this is true. So I think adding a test would still be useful, but we may assert different things depending on the implementation of SERVER-58410.

cc: lingzhi.deng

Generated at Thu Feb 08 05:52:48 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.