>Submitter-Id: net
>Originator: Paul Lieverse
>Organization:
>Confidential: no
>Synopsis: safe_location() called for remote repositories; might give problems if
>local path 'hangs'.
>Severity: non-critical
>Priority:
>Category: cvs <= 1.11
>Class: sw-bug
>Release: cvs-1.11
>Environment:
System: SunOS cobalt 5.6 Generic_105181-11 sun4u sparc SUNW,Ultra-4, but also Linux
and probably others
Architecture: sun4
>Description:
If a checkout is done from a remote repository (e.g. with the :ext: method,
or :pserver: method, but probably also with :kserver: method), a *local*
check is done on the path of the repository (safe_location()).
If the call to readlink() on this path gives problems, e.g. if it contains
some badly configured automounted path with a large timeout (which is the
case I ran into), the checkout will hang until the readlink() call times
out. The safe_location() check is IMHO not necessary for remote repositories,
unless the remote host is localhost.
>How-To-Repeat:
For the real problematic behavior you'll need a badly configured
automounter or so. But to see the effect you can try the following.
* Have some local automounted directory, say /mnt
* Make sure that the automounters writes some log entries on mounts or
attempted mounts.
* do a cvs -d :ext:[EMAIL PROTECTED]:/mnt/nonexistingpath co test
To see the effect, remote.host does not even have to exits.
* Check your log files. On my Linux machine it shows:
Oct 17 17:46:54 host automount[672]: attempting to mount entry /mnt/nonexistingpath
Oct 17 17:46:54 host automount[4477]: lookup(file): lookup for nonexistingpath failed
>Fix:
Workaround: remove the readlink() call from safe_location(). This works
for me.
Real fix: add some test before calling safe_location to see whether
the repository is remote or not. (test on cvs_method?)
_______________________________________________
Bug-cvs mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-cvs