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

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

XMLWordPrintable

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

      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

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

              Created:
              Updated:
              Resolved: