Removing Ghost Files


Removing 'ghost' files:

These files are those with a directory entry that points to an 
invalid/nonexistent inode.  They can be found by doing (in bash):
1) An ls of the specific file and getting "No such file or directory".
2) An "ls | grep <basename>" and getting a file listing. 

Reminder:  You need to log onto the pnfs server, use the /pnfs/fs path
           and be user root for these commands to work.

To remove them (1st method):
  setup pnfs
  $pnfs/tools/scandir.sh | grep <basname>

  Paste the results from scandir.sh as arguments to Sclient.

  Sclient <line from scandir.sh output>

  Answer yes to Sclient to execute the listed sclient rmdirentrypos command.


To remove them (2nd method):
  setup pnfs
  $pnfs/tools/scandir.sh | grep <basname>

  First output from scandir is the directory id, then the file id, then other
  output then the position.

  $pnfs/tools/sclient rmdirentrypos $shmkey <dirID> <rmID> <position>


To remove them (3rd method):

  Sometimes the positional way(s) does not work.  Try this next where
  <basename> is the name of the 'broken' file.

  setup pnfs
  $pnfs/tools/sclient rmdirentry $shmkey <dirID> <basename>


On occasion the filesystem will continue to remember that a file was there
after it has been successfully removed from the database.  Waiting a while
for the cache to clear out is the simplest option.  For the impatient
you can force an unmount ("umount -f -l ..." on linux) and then remount
the file to clear up the problem.
      

Last modified: Fri Sep 8 15:15:33 CDT 2006