Following is the repro steps
Have replica-set, for testing purpose, currently having 3 member set
- Setup in 4.0 - WT
- 3 member replica set
m1 - data path (db path) âm1_dataâ
m2 - data path âm2_dataâ
m3 - data path âm3_dataâ
Step 1)
Create a âtestCollectionâ
Step 2)
db.runCommand( {collMod : âtestCollectionâ , usePowerOf2Sizes : true } )
{
âusePowerOf2Sizes_oldâ : true,
âusePowerOf2Sizes_newâ : true,
âokâ : 1,
âoperationTimeâ : Timestamp(1656473051, 1),
â$clusterTimeâ : {
âclusterTimeâ : Timestamp(1656473051, 1),
âsignatureâ : {
âhashâ : BinData(0,âAAAAAAAAAAAAAAAAAAAAAAAAAAA=â),
âkeyIdâ : NumberLong(0)
}
}
}
Check whether the powerOf2 is added
db.getCollectionInfos()
ânameâ : âtestCollectionâ,
âtypeâ : âcollectionâ,
âoptionsâ : {
âflagsâ : 1
},
Step 3)
Simple document insertion in to the collection
Step 4)
Now upgrade m3 to 4.2, for simplicity purpose changed, m3 data path to âm3_new_dataâ
at this moment, following is the replica set
m1 - running in 4.0 as PRIMARY
m2 - running in 4.0 as SECONDARY
m3 - running in 4.2 as SECONDARY
Step 5)
Repeat Step 2) in m1
now the m3 running in 4.2 as secondary crashes.
2022-06-29T09:23:52.615+0530 E REPL [repl-writer-worker-0] Failed command { collMod: âtestCollectionâ, usePowerOf2Sizes: false } on test with status InvalidOptions: unknown option to collMod: usePowerOf2Sizes during oplog application
2022-06-29T09:23:52.615+0530 F REPL [repl-writer-worker-0] Error applying operation ({ op: âcâ, ns: âtest.$cmdâ, ui: UUID(âed0b8b42-7fa5-49fa-8b67-2fc34c63cf65â), o: { collMod: âtestCollectionâ, usePowerOf2Sizes: false }, o2: { collectionOptions_old: { uuid: UUID(âed0b8b42-7fa5-49fa-8b67-2fc34c63cf65â), flags: 0 } }, ts: Timestamp(1656474832, 1), t: 4, h: 5926513413780485954, v: 2, wall: new Date(1656474832605) }): :: caused by :: InvalidOptions: unknown option to collMod: usePowerOf2Sizes
2022-06-29T09:23:52.618+0530 F REPL [rsSync-0] Failed to apply batch of operations. Number of operations in batch: 1. First operation: { op: âcâ, ns: âtest.$cmdâ, ui: UUID(âed0b8b42-7fa5-49fa-8b67-2fc34c63cf65â), o: { collMod: âtestCollectionâ, usePowerOf2Sizes: false }, o2: { collectionOptions_old: { uuid: UUID(âed0b8b42-7fa5-49fa-8b67-2fc34c63cf65â), flags: 0 } }, ts: Timestamp(1656474832, 1), t: 4, h: 5926513413780485954, v: 2, wall: new Date(1656474832605) }. Last operation: { op: âcâ, ns: âtest.$cmdâ, ui: UUID(âed0b8b42-7fa5-49fa-8b67-2fc34c63cf65â), o: { collMod: âtestCollectionâ, usePowerOf2Sizes: false }, o2: { collectionOptions_old: { uuid: UUID(âed0b8b42-7fa5-49fa-8b67-2fc34c63cf65â), flags: 0 } }, ts: Timestamp(1656474832, 1), t: 4, h: 5926513413780485954, v: 2, wall: new Date(1656474832605) }. Oplog application failed in writer thread 0: InvalidOptions: unknown option to collMod: usePowerOf2Sizes
2022-06-29T09:23:52.618+0530 F - [rsSync-0] Fatal assertion 34437 InvalidOptions: unknown option to collMod: usePowerOf2Sizes at src\mongo\db\repl\sync_tail.cpp 851
2022-06-29T09:23:52.624+0530 F - [rsSync-0] \n\n***aborting after fassert() failure\n\n
It is happening consistently.
It looks like a bug to me, what do you think?
NOTE: If we try the same step 2) in 4.2 member as PRIMARY, then it gracefully rejects it and doesnât crash.
Couldnât the same be the behavior in the replication scenario as well??
Thanks,
Navanee