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

negative dentries not cached after open, even with MDS_INODELOCK_UPDATE on parent

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: Lustre 2.1.0
    • Labels:
    • Environment:
      Linux 2.6.18-238.12.1.el5
      Lustre 2.0.65
    • Severity:
      3
    • Rank (Obsolete):
      4919

      Description

      Trying to open a non-existent file does not cause a negative dentry to be cached, even
      when parent ctime is more than ctime_age_limit (10) seconds old, or even when MDS_INODELOCK_UPDATE is held.

      To reproduce:

      /usr/lib64/lustre/tests/llmount.sh
      echo +dentry +inode +dlmtrace +vfstrace +rpctrace > /proc/sys/lnet/debug
      lctl clear
      mkdir /mnt/lustre/DDD
      sleep 20 # Twice ctime_age_limit.
      cat /mnt/lustre/DDD/XXX
      cat /mnt/lustre/DDD/XXX
      lctl dk negative-dentry-not-cached.log

      Then negative-dentry-not-cached.log shows an LDLM_ENQUEUE being sent for each open.

      Alternatively, stating a non-existent file will cache a negative dentry, but opens on other non-existent files in the same directory will not cache negative dentries, see stat-vs-open.txt.

        Attachments

          Activity

            People

            • Assignee:
              rhenwood Richard Henwood (Inactive)
              Reporter:
              jhammond John Hammond
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: