mongod --repair terminates before repair is attempted under WiredTiger

XMLWordPrintableJSON

    • Fully Compatible
    • ALL
    • None
    • 3
    • None
    • None
    • None
    • None
    • None
    • None

      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

            Assignee:
            Mathias Stearn
            Reporter:
            Bruce Lucas (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            7 Start watching this issue

              Created:
              Updated:
              Resolved: