-
Notifications
You must be signed in to change notification settings - Fork 81
Description
Seen with:
duc --version
duc version: 1.4.5
options: cairo x11 ui tokyocabinet
Command line:
duc index -d /tmp/redacted.duc /proj/redacted
General description of problem:
While running duc in a UNIX/NFS environment with multiple computers using a Dell Isilon filer, I get into a situation where duc seems to lose track of the directory it is in. This problem reproduces only when my continuous integration server is running a regression and creating and deleting files from the path, but I am having trouble providing a testcase for easy reproduction for you. What I see in the duc output is something like:
Redacted log contents:
Cannot determine realpath of: relative_build_dir
skipping /proj/redacted/lots/of/different/paths/relative_build_dir: No such file or directory
Error statting other_relative_file: No such file or directory
[Repeats for several other files]
Error statting different_relative_file: Stale file handle
[Repeats for several other files]
Cannot determine realpath of: relative_dir
[Lots of different versions of the above errors for various different paths/files]
Error statting lots: Stale file handle
skipping /proj/redacted: Stale file handle
In my NFS environment, I have a lot of Continuous integration jobs running in the background which are deleting directories off the filer. This creates situations where whole directory trees will just disappear as the duc job runs. Not ideal, but also not much I can do about it.
My analysis FWIW
To me what it looks like is happening is that: duc is keeping track of its current directory, the directory it is in gets deleted underneath it, it then tries to use relative paths to recover, and since the directory it is in is now gone, it loses track of where it was and is unable to scan any more of the drive because it is off in the weeds with a series of stale file handles. This is the best description of the problem I can come up with based on the data presented without a deep div into the duc source code.