Uploaded image for project: 'Hadoop HDFS'
  1. Hadoop HDFS
  2. HDFS-4140

fuse-dfs handles open(O_TRUNC) poorly

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 2.0.2-alpha
    • 2.0.3-alpha
    • fuse-dfs
    • None
    • Reviewed

    Description

      fuse-dfs handles open(O_TRUNC) poorly.

      It is converted to multiple fuse operations. Those multiple fuse operations often fail (for example, calling fuse_truncate_impl() while a file is also open for write results in a "multiple writers!" exception.)

      One easy way to see the problem is to run the following sequence of shell commands:

      ubuntu@ubu-cdh-0:~$ echo foo > /export/hdfs/tmp/a/t1.txt
      ubuntu@ubu-cdh-0:~$ ls -l /export/hdfs/tmp/a
      total 0
      -rw-r--r-- 1 ubuntu hadoop 4 Nov  1 15:21 t1.txt
      ubuntu@ubu-cdh-0:~$ hdfs dfs -ls /tmp/a
      Found 1 items
      -rw-r--r--   3 ubuntu hadoop          4 2012-11-01 15:21 /tmp/a/t1.txt
      ubuntu@ubu-cdh-0:~$ echo bar > /export/hdfs/tmp/a/t1.txt
      ubuntu@ubu-cdh-0:~$ ls -l /export/hdfs/tmp/a
      total 0
      -rw-r--r-- 1 ubuntu hadoop 0 Nov  1 15:22 t1.txt
      ubuntu@ubu-cdh-0:~$ hdfs dfs -ls /tmp/a
      Found 1 items
      -rw-r--r--   3 ubuntu hadoop          0 2012-11-01 15:22 /tmp/a/t1.txt
      

      Attachments

        1. HDFS-4140.003.patch
          10 kB
          Colin McCabe
        2. HDFS-4140.004.patch
          10 kB
          Colin McCabe
        3. HDFS-4140.005.patch
          13 kB
          Colin McCabe
        4. HDFS-4140.006.patch
          13 kB
          Colin McCabe
        5. HDFS-4140.007.patch
          12 kB
          Colin McCabe
        6. HDFS-4140.008.patch
          12 kB
          Colin McCabe

        Activity

          People

            cmccabe Colin McCabe
            adi2 Andy Isaacson
            Votes:
            0 Vote for this issue
            Watchers:
            7 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: