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

lfsck of upgraded 1.8 filesystem does not add linkEA

Details

    • Bug
    • Resolution: Won't Fix
    • Minor
    • Lustre 2.5.5
    • Lustre 2.5.4
    • 3
    • 17601

    Description

      The filesystem was formatted with 1.x, so has many inodes with IGIF FIDs. OI Scrub was run under 2.4.3 to create the OI files and lma xattrs on all files.

      Running lctl lfsck_start -M myth-MDT0000 -t namespace on the MDS (even multiple times) with 2.5.3+ does not appear to create the link xattrs on directories, even though it has created link xattrs on the regular files. This means that lfs fid2path does not work properly.

      There appears to be some errors that LFSCK hits (see first_failure_position below), but it does not report them to the log, so there is no way to know what is going wrong.

      # lctl get_param mdd.*.lfsck_namespace
      mdd.myth-MDT0000.lfsck_namespace=
      name: lfsck_namespace
      magic: 0xa0629d03
      version: 2
      status: completed
      flags: scanned-once,inconsistent
      param: (null)
      time_since_last_completed: 233 seconds
      time_since_latest_start: 349 seconds
      time_since_last_checkpoint: 233 seconds
      latest_start_position: 13, N/A, N/A
      last_checkpoint_position: 2621440, N/A, N/A
      first_failure_position: 32769, [0x8001:0x4145293e:0x0], 1051280482039016589
      checked_phase1: 3104290
      checked_phase2: 0
      updated_phase1: 912977
      updated_phase2: 0
      failed_phase1: 0
      failed_phase2: 0
      dirs: 84295
      M-linked: 0
      nlinks_repaired: 0
      lost_found: 0
      success_count: 12
      run_time_phase1: 116 seconds
      run_time_phase2: 0 seconds
      average_speed_phase1: 26761 items/sec
      average_speed_phase2: 0 objs/sec
      real-time_speed_phase1: N/A
      real-time_speed_phase2: N/A
      current_position: N/A
      

      There are only useless log entries from OI Scrub instead:

      00000004:10000000:1.0:1424838545.669434:0:2326:0:(osd_scrub.c:1240:osd_otable_it_preload()) OSD pre-loaded: max = 2621440, preload = 10470, rc = 0
      00000004:10000000:1.0:1424838545.669464:0:2326:0:(osd_scrub.c:1240:osd_otable_it_preload()) OSD pre-loaded: max = 2621440, preload = 10471, rc = 0
      00000004:10000000:1.0:1424838545.669501:0:2326:0:(osd_scrub.c:1240:osd_otable_it_preload()) OSD pre-loaded: max = 2621440, preload = 10474, rc = 0
      00000004:10000000:1.0:1424838545.669773:0:2326:0:(osd_scrub.c:1240:osd_otable_it_preload()) OSD pre-loaded: max = 2621440, preload = 32769, rc = 0
      00000004:10000000:1.0:1424838545.670051:0:2326:0:(osd_scrub.c:1240:osd_otable_it_preload()) OSD pre-loaded: max = 2621440, preload = 32770, rc = 0
      00000004:10000000:1.0:1424838545.670686:0:2326:0:(osd_scrub.c:1240:osd_otable_it_preload()) OSD pre-loaded: max = 2621440, preload = 32775, rc = 0
      

      The first_failure_location is a directory in the namespace:

      debugfs:  ncheck 0x8001
      Inode   Pathname
      32769   /ROOT/backup/ruby/Music/U2
      debugfs:  stat <0x8001>
      Inode: 32769   Type: directory    Mode:  0500   Flags: 0x0
      Generation: 1095051582    Version: 0x00000000:00000000
      User:  1000   Group:  1000   Size: 4096
      File ACL: 0    Directory ACL: 0
      Links: 5   Blockcount: 8
      Fragment:  Address: 0    Number: 0    Size: 0
       ctime: 0x4a6548f7:00000000 -- Mon Jul 20 22:49:59 2009
       atime: 0x53d6d027:01b56e18 -- Mon Jul 28 16:35:19 2014
       mtime: 0x48699a91:00000000 -- Mon Jun 30 20:46:41 2008
      crtime: 0x4a6548e2:21db6948 -- Mon Jul 20 22:49:38 2009
      Size of extra inode fields: 28
      Extended attributes stored in inode body: 
        lma = "00 00 00 00 00 00 00 00 01 80 00 00 00 00 00 00 3e 29 45 41 00 00 00 00 " (24)
        lma: fid=[0x8001:0x4145293e:0x0] compat=0 incompat=0
      BLOCKS:
      (0):53248
      TOTAL: 1
      

      Attachments

        Activity

          [LU-6278] lfsck of upgraded 1.8 filesystem does not add linkEA
          yong.fan nasf (Inactive) made changes -
          Resolution New: Won't Fix [ 2 ]
          Status Original: In Progress [ 3 ] New: Resolved [ 5 ]

          The issue has been resolved on master, we have no plan to land more patches for b2_5 based release. Then close the ticket.

          yong.fan nasf (Inactive) added a comment - The issue has been resolved on master, we have no plan to land more patches for b2_5 based release. Then close the ticket.
          adilger Andreas Dilger made changes -
          Labels Original: mq115 New: mq115 patch
          adilger Andreas Dilger made changes -
          Link New: This issue is related to LDEV-243 [ LDEV-243 ]
          yong.fan nasf (Inactive) made changes -
          Priority Original: Major [ 3 ] New: Minor [ 4 ]
          yong.fan nasf (Inactive) made changes -
          Priority Original: Minor [ 4 ] New: Major [ 3 ]
          adilger Andreas Dilger made changes -
          Labels New: mq115
          adilger Andreas Dilger made changes -
          Fix Version/s New: Lustre 2.5.5 [ 11394 ]
          adilger Andreas Dilger added a comment - - edited

          I removed the lfsck_bookmark and lfsck_namespace files, and re-ran LFSCK, which cleared the dryrun flag. It no longer shows the first_failure_location, and now the link xattrs were created:

          # lfs fid2path /myth "[0x8001:0x4145293e:0x0]"
          /myth/backup/ruby/Music/U2
          

          It seems like a defect that dryrun isn't cleared once the lfsck run is completed, rather than staying set until it is manually removed.

          adilger Andreas Dilger added a comment - - edited I removed the lfsck_bookmark and lfsck_namespace files, and re-ran LFSCK, which cleared the dryrun flag. It no longer shows the first_failure_location , and now the link xattrs were created: # lfs fid2path /myth "[0x8001:0x4145293e:0x0]" /myth/backup/ruby/Music/U2 It seems like a defect that dryrun isn't cleared once the lfsck run is completed, rather than staying set until it is manually removed.
          yong.fan nasf (Inactive) added a comment - - edited

          On master branch, the "dryrun" flag will be clear automatically when "-r" specified. I will back port the patch to b2_5. But before that, you can specify "--dryrun off" for the same purpose.

          yong.fan nasf (Inactive) added a comment - - edited On master branch, the "dryrun" flag will be clear automatically when "-r" specified. I will back port the patch to b2_5. But before that, you can specify "--dryrun off" for the same purpose.

          People

            yong.fan nasf (Inactive)
            adilger Andreas Dilger
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: