Red Hat Bugzilla – Bug 760289
Excessive file scanning in drift detection when using includes filters
Last modified: 2013-08-31 06:11:09 EDT
I may be wrong, I'm still looking at this, but it looks like to me like
the drift detector processes all files, recursively, under the base
directory, looking for files that match the filters. That doesn't mean
we digest them all but it does grab each file in order to see whether
it matches the filters.
This means that if you use a broad base directory, like c:/ on windows, and
your includes filters are subdir1 and subdir2, that we'll actually scan the
entire file system looking for files. It should, I would think, only look in
subdir1 and subdir2 directories recursively.
This can most likely hang up an agent. Researching more now...
Still looking at this but assuming it is as described above, the workaround
would be to delete the offending definition and create multiple more
specific definitions. So, instead of:
use two defs not using includes filters:
Note, that you can always perform a pattern-based filter on the basedir
using an includes filter using "." as the path.
master commit 6f3d99d160c4910bffe16ada89b625fe251bea44
Now, when using includes file paths limit the directory scanning to only
those included directories.
Note that using a "." as an includes path basically translates to using
the base directory, in which case the scan will be as it is now.
A future enhancement may be to analyze the pattern and decide
whether a recursive scan is necessary. Currently. So, using includes
patterns to just look for certain files in the base directory will
expose you to the full scan.
This is not obvious to test as it's mainly a performance fix. But,
prior to the fix, creating a drift definition with a basedir of the
file system root, with an includes subdir, would take a very large
period of time to complete for a sizeable file system, and a lot of
disk/cpu activity. It should not complete very quickly assuming the
included subdir has a reasonable number of total files.
verified by testing positive use-case around filters. RHQ 3. master
Bulk close of old bugs in VERIFIED state.