[SERVER-15942] Replset write-command API test failures for non-mmap engines Created: 04/Nov/14  Updated: 06/Dec/22  Resolved: 01/Apr/19

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

Type: Bug Priority: Minor - P4
Reporter: John Esmet Assignee: Backlog - Storage Execution Team
Resolution: Done Votes: 0
Labels: gm-ack
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Related
is related to SERVER-15991 Command line options invalid for a st... Closed
is related to DRIVERS-190 Test against non-mmapv1 storage engine Closed
Assigned Teams:
Storage Execution
Operating System: ALL
Steps To Reproduce:

Start mongod with --nojournal and a storage engine whose implementation of isDurable() unconditionally returns true.

Participants:

 Description   

Some replsets tests check that a

{ j: true }

write on a server with --nojournal fails. The method to detect whether an engine is journaling is `StorageEngine::isDurable()'

Some engines are unconditionally durable, so they always return true for isDurable and ignore the --nojournal option. As a result the write command API won't reject writes due to

{ j: 1 }

because it seems like a valid thing to do (and it is because the engine supports journaling).

If we want to keep the current semantics, we should check for the '--nojournal' option in the command line params struct instead of asking the storage engine whether or not it is durable. But I think the tests should just be fixed to accept the fact that some engines always enable journaling.

The tests that fail include:
jstests/gle/gle_sharded_wc.js
jstests/replsets/bulk_api_wc.js
jstests/replsets/batch_write_command_wc.js



 Comments   
Comment by Sara Williamson [ 01/Apr/19 ]

Running MongoDB without journaling in a replica set is no longer supported, so we are closing this ticket. 

Comment by Mathias Stearn [ 05/Oct/15 ]

This is an issue, but it is basically theoretical until we have a storage engine that does this. We'll cross that bridge when we get there.

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