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

Missing WiredTiger.turtle file loses data

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major - P3
    • Resolution: Fixed
    • Affects Version/s: 3.2.11
    • Fix Version/s: 3.2.13, 3.4.4, 3.5.6
    • Component/s: WiredTiger
    • Labels:
      None
    • Environment:
      Windows Server 2012 R2
    • Backwards Compatibility:
      Fully Compatible
    • Operating System:
      ALL
    • Sprint:
      Storage 2017-03-27, Storage 2017-04-17, Storage 2017-05-08
    • Case:

      Description

      We had a single database instance (version 3.2.11 no replica set) running on windows server. Yesterday morning we realized that all data older than 02:30 approx in the morning was lost.

      Looking in the MongoDb logs we find this piece of log happened at that time.

      e:/ourfolder/data/mongodb/data\WiredTiger.turtle.set to e:/ourfolder/data/mongodb/data\WiredTiger.turtle: file-rename: MoveFileW: Cannot create a file when that file already exists.
      

      I included part of the log that spot the problem as attachment.

      If you look at the logs, you can verify that the server restarted, it tried to recover the db, but after restart there are nothing inside dbs, we found only data that was generated after the restart.

      No error in operating system log, no log of disk failure for the virtual machine.

      If I look at the disk, I see that there are 7.5 GB approx of various .wt collection files, so the old data is still there. We tried with wt utility to recover the data, but we had no success. We tried to recover wt files, we tried to dump them, but with no success.

      It seems that the wiredtiger.wt file was completely rewritten when the server restarted, wt dump command can dump all the .wt files created after the restart, but it cannot dump files older than server restart.

      Is there any way to dump the content of a .wt collection file without the WiredTiger.wt file?

      In such a situation it could be better to avoid server restart and automatic repair but simply stopping the server and letting a human check what happened? (maybe we can save the old situation and use the wt dump command before the restore process)

      It can be related to this ticket SERVER-18850

        Attachments

          Activity

            People

            • Votes:
              0 Vote for this issue
              Watchers:
              12 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: