[SERVER-15789] shutdown path is not clean for storage engines Created: 23/Oct/14  Updated: 06/Dec/22  Resolved: 01/Apr/19

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

Type: Bug Priority: Minor - P4
Reporter: Leif Walsh Assignee: Backlog - Storage Execution Team
Resolution: Won't Fix Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: File 01-kv_storage_engine_clean_shutdown.patch     File 02-kv_record_store_close_before_drop.patch    
Assigned Teams:
Storage Execution
Operating System: ALL
Participants:

 Description   

TokuFT is fairly draconian about closing and dropping dictionaries, and about shutting down while things are still open.

Attached are two patches:

1) During a clean shutdown, close all databases (which in turn will close all dictionaries) before closing the environment.
2) Before dropping a collection, close the record store backing it, because TokuFT complains if you drop an open dictionary.

These patches are part of https://github.com/mongodb/mongo/pull/834, this ticket is mostly to explain the issue and have a record of it.



 Comments   
Comment by Leif Walsh [ 04/Dec/14 ]

Ok, not entirely impossible, but very very ugly: https://github.com/leifwalsh/mongo/commit/4098a89ec0c32e2bbbb80f213e75f4249635240c

Comment by Leif Walsh [ 04/Dec/14 ]

The recent removal of the OperationContext from the shutdown path (https://github.com/mongodb/mongo/commit/293c0ca515eb30cc8f4c74eb82c4e7b5f16d95c5) has rendered this change impossible, as we need an OperationContext with a global write lock in order to close anything.

Comment by Eliot Horowitz (Inactive) [ 29/Oct/14 ]

Leif - can you pull out a pull request just for this subject?

Generated at Thu Feb 08 03:38:59 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.