[SERVER-61475] Fix the WTConfig string for temp WT instance. Created: 15/Nov/21 Updated: 29/Oct/23 Resolved: 02/Aug/23 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | 7.1.0-rc0 |
| Type: | Task | Priority: | Major - P3 |
| Reporter: | A. Jesse Jiryu Davis | Assignee: | Suganthi Mani |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | shard-merge-milestone-1 | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||
| Backwards Compatibility: | Fully Compatible | ||||||||
| Sprint: | Server Serverless 2023-04-17, Server Serverless 2023-05-01, Server Serverless 2023-05-15, Server Serverless 2023-05-29, Server Serverless 2023-06-26, Server Serverless 2023-07-10, Server Serverless 2023-07-24, Server Serverless 2023-08-07 | ||||||||
| Participants: | |||||||||
| Description |
|
When the recipient creates a temporary WT instance (to rollback-to-stable the donor files and record collection metadata), it calls wiredtiger_open with a config string. There are configuration options that might vary on the donor which the recipient must match, like "compressor=snappy". Figure out how to match these up, e.g. the donor sends a config string to the recipient via the recipientSyncData command, and the recipient stores the string in its state machine. |
| Comments |
| Comment by Suganthi Mani [ 03/Aug/23 ] |
|
Note to future readers: I tried to implement a fail safe mechanism to handle WT_PANIC failures (causes fatal assertion to throw) in temp WT instance. However, due to its complexity and the extreme rarity of encountering WT_PANIC errors in the temp WT instance, I deemed the fail-safe mechanism not worth implementing. More context: I tried to register a custom error handler for the temp WT instance to inform importerService about WT_PANIC and uassert it before the WT API call returns that error, avoiding fasserting in uassertWTOK() . However, this approach poses a risk of memory leaks, and there is also a WT bug where the error handler won't be called for all WT_PANIC cases (see |
| Comment by Githook User [ 01/Aug/23 ] |
|
Author: {'name': 'Suganthi Mani', 'email': 'suganthi.mani@mongodb.com', 'username': 'smani87'}Message: |
| Comment by Githook User [ 31/Jul/23 ] |
|
Author: {'name': 'Suganthi Mani', 'email': 'suganthi.mani@mongodb.com', 'username': 'smani87'}Message: |
| Comment by A. Jesse Jiryu Davis [ 17/Nov/21 ] |
|
See example code: https://github.com/mongodb/mongo/blob/25993169a43f40d4f13d2eba8e6645598b62cc1c/src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp#L370-L448 |