When the MVFS is active on a client host, a /view directory, the viewroot, is created. This directory functions as a mount point for the MVFS namespace (see Figure 44). The /view directory causes the root directory to contain itself recursively, which makes certain recursive pathnames valid. For example:
/view/alpha/view/beta/view/alpha/view/gamma/usr/src/lib
As a result, commands that traverse the entire directory tree, starting at the UNIX root directory ( / ), loop infinitely. In particular, many UNIX systems configure the root user to have a daily crontab(1) script that performs a cleanup on the file-system tree. If the script uses a find / command, it runs the risk of looping infinitely.
NOTE: This situation applies equally to commands and programs executed by any user, either interactively or through a script.
Figure 44 Directory as a Super-Root
The ClearCase installation script, install_release, analyzes the crontab file of the root user on a client host. It modifies entries in this file to prevent the recursive traversal problem (or displays a message warning that it cannot perform the modification).
After installation, verify the correctness of the install_release changes. In addition, modify the crontab entries of other users, according to the instructions in Modifying a crontab Entry.
Use the following procedure to analyze and, if necessary, modify all of a host's crontab entries.
Analyze the crontab entries. Determine which entries will encounter the recursion problem:
% su
Password: <enter root password>
# grep "find /" /usr/spool/cron/crontabs/*
/usr/spool/cron/crontabs/root:15 3 * * * find / -name .nfs\*
-mtime +7 -exec rm -f {} \; -o -fstype nfs -prune
In the example above, long lines are broken for readability. In actual crontab files, each entry must be contained on a single physical text line.
Revise crontab entries. You must modify each crontab file in which an offending entry was found. For example:
# su - username | (switch user identity) |
# crontab -l > /tmp/C | (create temporary file with that user's crontab entries) |
# vi /tmp/C | (modify those entries) |
# crontab < /tmp/C | (configure the modified entries) |
During the edit session, change the command containing find / by adding the host-appropriate options. Detailed information on platform-specific options is in the Platform-Specific Guide in online help. It is also a good idea to add comments to the crontab files warning others not to add entries that cause recursive traversal problems.
|
Feedback on the documentation in this site? We welcome any comments!
Copyright © 2001 by Rational Software Corporation. All rights reserved. |