Uploaded image for project: 'Flume'
  1. Flume
  2. FLUME-3309

多文件采集时,因inode重复,造成文件读取异常

    XMLWordPrintableJSON

    Details

    • Type: Improvement
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: 1.7.0, 1.8.0
    • Fix Version/s: None
    • Component/s: File Channel
    • Labels:
    • Environment:

      linux

    • Flags:
      Important

      Description

      1)前提

      读取一个目录下的所有文件,文件名包含年月日时分秒,每天凌晨删除前一天文件。

      2)现象

      部分记录丢失,或者部分记录被截断,同时日志中不断出现Pos ** is larger than file size! Restarting from pos 0 信息。

      3)问题分析

      文件通过inode进行唯一标识,ReliableTaildirEventReader类中的tailFiles变量只有不断新增,没有删除。当文件从磁盘删除后,inode就会被重用,会出现同一个inode对应不同的文件。同一个inode第二次被使用时,如果当前文件小于已经删除的文件大小,pos被重置为0,,不存在问题;一旦当前文件大于已经删除的文件大小,就会按照老位置继续读取文件,信息就发生丢失。

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              daisy1012 daisy
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:

                Time Tracking

                Estimated:
                Original Estimate - 0.2h
                0.2h
                Remaining:
                Remaining Estimate - 0.2h
                0.2h
                Logged:
                Time Spent - Not Specified
                Not Specified