[SERVER-21268] Unable to start mongod with journals Created: 03/Nov/15  Updated: 05/Nov/15  Resolved: 05/Nov/15

Status: Closed
Project: Core Server
Component/s: Storage, Testing Infrastructure
Affects Version/s: 3.2.0-rc1
Fix Version/s: None

Type: Bug Priority: Major - P3
Reporter: William Zhang Assignee: Unassigned
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Attachments: Text File checksum.js.log    
Issue Links:
Related
related to SERVER-15749 Run the 'disk' suite on both mmap and... Closed
Operating System: ALL
Participants:

 Description   

I am trying to run jstests/dur/checksum.js on s390x on RHEL 7.1.

The test failed with the following error:
2015-11-02T15:12:41.971-0500 E QUERY [thread1] Error: [0] != [2] are not equal : undefined :
doassert@src/mongo/shell/assert.js:15:14
assert.eq@src/mongo/shell/assert.js:43:5
@jstests/dur/checksum.js:43:1

failed to load: jstests/dur/checksum.js

I also made the following query
db.foo.find()
db.getCollectionNames()
Both return empty result.



 Comments   
Comment by Bryan Chan [ 05/Nov/15 ]

This is likely caused by an issue in our s390x patches for MMAPv1 which were adapted from the 3.0 code base to the master branch. We will take a better look at the issue and hopefully fix the patches.

Comment by Ramon Fernandez Marina [ 05/Nov/15 ]

williamzhang, as per Max's message I'm closing this ticket. Please tune to SERVER-15749 for updates on adapting MMAPv1-specific tests to other storage engines.

Regards,
Ramón.

Comment by Max Hirschhorn [ 04/Nov/15 ]

The jstests/dur/checksum.js test is MMAPv1-only. The whole durability suite is only known to pass with MMAPv1. The intention to only run these tests with MMAPv1 is reflected in its YAML configuration by explicitly specifying the storage engine as a part of the TestData:

selector:
  js_test:
    roots:
    - jstests/dur/*.js
    exclude_files:
    # SERVER-19124 closeall.js causes the task to time out in Evergreen.
    - jstests/dur/closeall.js
 
# Durability tests start their own mongod's.
executor:
  js_test:
    config:
      shell_options:
        global_vars:
          TestData:
            storageEngine: mmapv1
        nodb: ''
        readMode: commands

SERVER-15749 represents the work to move the MMAPv1-specific tests from the jstests/dur/ directory to the jstests/mmap_v1/ directory and start running the remaining tests in Evergreen with all other storage engines.

Comment by Ramon Fernandez Marina [ 04/Nov/15 ]

Here's the part of the test that triggers the assert:

var testname = "dur_checksum";
var path = MongoRunner.dataPath + testname;
 
function startMongodWithJournal() {
    return MongoRunner.runMongod({restart: true,
                                  cleanData: false,
                                  dbpath: path,
                                  journal: "",
                                  smallfiles: "",
                                  journalOptions: 1 /*DurDumpJournal*/});
}
 
jsTest.log("Starting with good.journal to make sure everything works");
resetDbpath(path);
mkdir(path + '/journal');
copyFile("jstests/libs/dur_checksum_good.journal", path + "/journal/j._0");
var conn = startMongodWithJournal();
var db = conn.getDB('test');
assert.eq(db.foo.count(), 2);

I don't think this test can work with WiredTiger, as the file being copied into the journal directory looks like an MMAPv1 journal file.

Comment by William Zhang [ 04/Nov/15 ]

This test is run with WiredTiger as storage engine, if relevant.

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