[SERVER-30242] Add a method to determine if fCV has been set. Created: 20/Jul/17  Updated: 30/Oct/23  Resolved: 16/Oct/17

Status: Closed
Project: Core Server
Component/s: Internal Code
Affects Version/s: None
Fix Version/s: 3.6.0-rc1

Type: Improvement Priority: Major - P3
Reporter: Daniel Gottlieb (Inactive) Assignee: Louis Williams
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
depends on SERVER-31235 Fix or blacklist jstests/multiVersion... Closed
is depended on by SERVER-31136 Add method to determine whether fCV h... Closed
is depended on by SERVER-31211 Use config_base=false for encryption ... Closed
Gantt Dependency
has to be done before SERVER-31137 Assert that the featureCompatibilityV... Closed
Backwards Compatibility: Fully Compatible
Sprint: Storage 2017-08-21, Storage 2017-09-11, Storage 2017-10-23
Participants:

 Description   

There are some non-trivial code paths (e.g: shutdown) that can happen before FCV is initialized (inside `repairDatabasesAndCheckVersion`). These non-trivial code paths may require reading FCV from memory and may incorrectly read the default 3.4 as opposed to an explicitly set 3.4.

The example of WiredTiger shutdown that wants to know the FCV value can make a sane decision with an uninitialized value. It's presumed this state would be sufficient for future cases.



 Comments   
Comment by Githook User [ 16/Oct/17 ]

Author:

{'email': 'louis.williams@mongodb.com', 'name': 'Louis Williams', 'username': 'louiswilliams'}

Message: SERVER-30242 SERVER-31513 SERVER-31235 Make method to determine if fCV has been initialized in memory. Make fCV state one atomic variable. Initialize fCV on arbiters once a primary is elected.
Branch: master
https://github.com/mongodb/mongo/commit/203ff7c010d1d4fcbe291852f70fb9d967a171cc

Comment by Louis Williams [ 16/Oct/17 ]

This will also close SERVER-31235 and SERVER-31513

Comment by Ian Whalen (Inactive) [ 16/Oct/17 ]

louis.williams looks like the CR is LGTMd - have you run this cleanly on evergreen yet? Would like to get this merged today-ish in order to unblock Maria's work on SERVER-31137.

Comment by Eric Milkie [ 04/Oct/17 ]

This new method should enable us to fix the KMIP issue in SERVER-31211.

Comment by Maria van Keulen [ 19/Sep/17 ]

The discussion of the behavior in esha.maharishi's comment has been moved to SERVER-31157.

Comment by Esha Maharishi (Inactive) [ 12/Sep/17 ]

Note:

If you start a mongod with 3.5.12 with a replicaSet parameter, it will default to FCV=3.4
If you omit the replicaSet parameter, it defaults to FCV=3.6

This is not desirable behavior and should be fixed as part of this ticket.

Comment by Eric Milkie [ 07/Sep/17 ]

It may be possible to initialize FCV sooner in the startup process. Anything that attempts to access FCV prior to that point should abort the startup process.

Generated at Thu Feb 08 04:23:08 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.