Uploaded image for project: 'Lustre'
  1. Lustre
  2. LU-6768

Data corruption when write and truncate in parallel in a almost-full file system

Details

    • Bug
    • Resolution: Fixed
    • Critical
    • Lustre 2.8.0
    • Lustre 2.6.0
    • None
    • Reproduced in a virtual machine using loop device as OSD-ldiskfs disk.
    • 3
    • 9223372036854775807

    Description

      In order to test the stability of the Lustre file system under continuous workload and extreme resource usage, I wrote a tool to write data to files continuously unless 'ENOSPC' occurs, then the tool will truncate and delete some old files to free the space and continue to write the files. Before the file is truncated, its content will be verified. The problem is that after running the tool for a while, the content of some file would be wrong.

      If the data is corrupted, it will fail with:
      yaft: main.cpp:81: void check_file_content(const std::string&): Assertion `rbuf.checkAt(pos)' failed.
      Aborted

      You can get the tool at:
      https://github.com/zhang-jingwang/yaft.git

      Attachments

        Issue Links

          Activity

            People

              bzzz Alex Zhuravlev
              jingwang Jingwang Zhang
              Votes:
              0 Vote for this issue
              Watchers:
              8 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: