[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: |
|
||||||||||||
| 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: |
| 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. |