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

mongod --repair terminates before repair is attempted under WiredTiger

    • Fully Compatible
    • ALL

      During intializion under WiredTiger some data is pre-loaded in setGlobalStorgeEngine(), before repair is attempted. If any of the preloaded data is damaged, mongod terminates with an fassert:

       mongod(_ZN5mongo13fassertFailedEi+0x19E) [0x1063183ae]
       mongod(_ZN5mongo12_GLOBAL__N_116mdb_handle_errorEP18__wt_event_handlerP12__wt_sessioniPKc+0xDE) [0x106199cee]
       mongod(__wt_eventv+0x4A3) [0x1067a6763]
       mongod(__wt_err+0x99) [0x1067a68b9]
       mongod(__wt_illegal_value+0x63) [0x1067a6ed3]
       mongod(__wt_bm_preload+0xA1) [0x106726b41]
       mongod(__wt_btree_open+0x12AF) [0x106734bff]
       mongod(__wt_conn_btree_get+0x4DF) [0x10676102f]
       mongod(__wt_session_get_btree+0x26D) [0x1067a5d1d]
       mongod(__wt_session_get_btree_ckpt+0xD1) [0x1067a5a61]
       mongod(__wt_curfile_open+0x108) [0x10676b6b8]
       mongod(__wt_open_cursor+0x110) [0x1067a25d0]
       mongod(__wt_curtable_open+0xF7) [0x10677b277]
       mongod(__wt_open_cursor+0x252) [0x1067a2712]
       mongod(__session_open_cursor+0x1A5) [0x1067a32e5]
       mongod(_ZN5mongo17WiredTigerSession9getCursorERKNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEy+0x13E) [0x1061a47fe]
       mongod(_ZN5mongo16WiredTigerCursor5_initERKNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEyPNS_22WiredTigerRecoveryUnitE+0x5F) [0x1061a37af]
       mongod(_ZN5mongo21WiredTigerRecordStore8IteratorC2ERKS0_PNS_16OperationContextERKNS_7DiskLocERKNS_20CollectionScanParams9DirectionEb+0x5A) [0x1061a173a]
       mongod(_ZNK5mongo21WiredTigerRecordStore11getIteratorEPNS_16OperationContextERKNS_7DiskLocERKNS_20CollectionScanParams9DirectionE+0x3E) [0x10619fd8e]
       mongod(_ZN5mongo21WiredTigerRecordStoreC2EPNS_16OperationContextERKNS_10StringDataES5_bxxPNS_28CappedDocumentDeleteCallbackEPNS_20WiredTigerSizeStorerE+0x51D) [0x10619d2fd]
       mongod(_ZN5mongo18WiredTigerKVEngine14getRecordStoreEPNS_16OperationContextERKNS_10StringDataES5_RKNS_17CollectionOptionsE+0x134) [0x10619ab94]
       mongod(_ZN5mongo22KVDatabaseCatalogEntry14initCollectionEPNS_16OperationContextERKNSt3__112basic_stringIcNS3_11char_traitsIcEENS3_9allocatorIcEEEE+0x12A) [0x106124d3a]
       mongod(_ZN5mongo15KVStorageEngine10finishInitEv+0x5BB) [0x106127c4b]
       mongod(_ZN5mongo23GlobalEnvironmentMongoD22setGlobalStorageEngineERKNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE+0x45) [0x105e7bb85]
       mongod(_ZN5mongoL14_initAndListenEi+0xC8C) [0x105bdd7ec]
       mongod(_ZN5mongo13initAndListenEi+0x13) [0x105bdc613]
      

      The consequence is that repair won't even be attempted for some kinds of damage. Based on experiment this appears to affect the block manager pages, the root btree page, and at least some internal btree pages.

        1. db.tgz
          386 kB
          Bruce Lucas

            Assignee:
            mathias@mongodb.com Mathias Stearn
            Reporter:
            bruce.lucas@mongodb.com Bruce Lucas (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            7 Start watching this issue

              Created:
              Updated:
              Resolved: