Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-28179

inMemory: fassert when using --inMemoryEngineConfigString

    • Type: Icon: Bug Bug
    • Resolution: Done
    • Priority: Icon: Minor - P4 Minor - P4
    • 3.6.0-rc1
    • Affects Version/s: 3.5.3
    • Component/s: Storage
    • Fully Compatible
    • ALL
    • Hide

      [2017/03/02 13:48:21.136] numactl --physcpubind=4,5,6,7 -i 1 ./mongod --dbpath ./dbdata --storageEngine=inMemory --logpath ./mongod.log --fork --syncdelay 0 --setParameter ttlMonitorEnabled=false --setParameter diagnosticDataCollectionEnabled=false --inMemoryEngineConfigString 'eviction=(threads_min=0)' --inMemorySizeGB 60 --auth

      Show
      [2017/03/02 13:48:21.136] numactl --physcpubind=4,5,6,7 -i 1 ./mongod --dbpath ./dbdata --storageEngine=inMemory --logpath ./mongod.log --fork --syncdelay 0 --setParameter ttlMonitorEnabled=false --setParameter diagnosticDataCollectionEnabled=false --inMemoryEngineConfigString 'eviction=(threads_min=0)' --inMemorySizeGB 60 --auth
    • Storage 2017-10-23

      I hit an fassert when trying to use --inMemoryEngineConfigString. (Which to be fair, I think is undocumented, but the error here seems clear enough to be worth reporting.)

      2017-03-02T18:48:21.159+0000 I CONTROL  [initandlisten] options: { processManagement: { fork: true }, security: { authorization: "enabled" }, setParameter: { diagnosticDataCollectionEnabled: "false", ttlMonitorEnabled: "false" }, storage: { dbPath: "./dbdata", engine: "inMemory", inMemory: { engineConfig: { configString: "eviction=(threads_min=0)", inMemorySizeGB: 60.0 } }, syncPeriodSecs: 0.0 }, systemLog: { destination: "file", path: "./mongod.log" } }
      2017-03-02T18:48:21.177+0000 I STORAGE  [initandlisten] wiredtiger_open config: create,cache_size=61440M,session_max=20000,eviction=(threads_min=4,threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),checkpoint=(wait=0,log_size=2GB),statistics_log=(wait=0),verbose=(recovery_progress),eviction=(threads_min=0)in_memory=true,log=(enabled=false),file_manager=(close_idle_time=0),checkpoint=(wait=0,log_size=0),log=(enabled=false),
      2017-03-02T18:48:21.177+0000 E STORAGE  [initandlisten] WiredTiger error (22) [1488480501:177866][4369:0x7fdf41630d60], wiredtiger_open: Error parsing 'create,cache_size=61440M,session_max=20000,eviction=(threads_min=4,threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),checkpoint=(wait=0,log_size=2GB),statistics_log=(wait=0),verbose=(recovery_progress),eviction=(threads_min=0)in_memory=true,log=(enabled=false),file_manager=(close_idle_time=0),checkpoint=(wait=0,log_size=0),log=(enabled=false),' at offset 328: New value starts without a separator: Invalid argument
      2017-03-02T18:48:21.177+0000 I -        [initandlisten] Fatal Assertion 28561 at src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp 268
      2017-03-02T18:48:21.177+0000 I -        [initandlisten] 
      
      ***aborting after fassert() failure
      

      It seems to me that in wiredTiger, the EngineConfigString is appended last, but in inMemory there are still some inMemory-specific options appended to the end, and there's a comma missing when that is done.

            Assignee:
            xiangyu.yao@mongodb.com Xiangyu Yao (Inactive)
            Reporter:
            henrik.ingo@mongodb.com Henrik Ingo (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated:
              Resolved: