(cvs.info.gz) Connection
Info Catalog
(cvs.info.gz) Error messages
(cvs.info.gz) Troubleshooting
(cvs.info.gz) Other problems
F.2 Trouble making a connection to a CVS server
===============================================
This section concerns what to do if you are having trouble making a
connection to a CVS server. If you are running the CVS command line
client running on Windows, first upgrade the client to CVS 1.9.12 or
later. The error reporting in earlier versions provided much less
information about what the problem was. If the client is non-Windows,
CVS 1.9 should be fine.
If the error messages are not sufficient to track down the problem,
the next steps depend largely on which access method you are using.
`:ext:'
Try running the rsh program from the command line. For example:
"rsh servername cvs -v" should print CVS version information. If
this doesn't work, you need to fix it before you can worry about
CVS problems.
`:server:'
You don't need a command line rsh program to use this access
method, but if you have an rsh program around, it may be useful as
a debugging tool. Follow the directions given for :ext:.
`:pserver:'
Errors along the lines of "connection refused" typically indicate
that inetd isn't even listening for connections on port 2401
whereas errors like "connection reset by peer", "received broken
pipe signal", "recv() from server: EOF", or "end of file from
server" typically indicate that inetd is listening for connections
but is unable to start CVS (this is frequently caused by having an
incorrect path in `inetd.conf' or by firewall software rejecting
the connection). "unrecognized auth response" errors are caused
by a bad command line in `inetd.conf', typically an invalid option
or forgetting to put the `pserver' command at the end of the line.
Another less common problem is invisible control characters that
your editor "helpfully" added without you noticing.
One good debugging tool is to "telnet servername 2401". After
connecting, send any text (for example "foo" followed by return).
If CVS is working correctly, it will respond with
cvs [pserver aborted]: bad auth protocol start: foo
If instead you get:
Usage: cvs [cvs-options] command [command-options-and-arguments]
...
then you're missing the `pserver' command at the end of the line
in `inetd.conf'; check to make sure that the entire command is on
one line and that it's complete.
Likewise, if you get something like:
Unknown command: `pserved'
CVS commands are:
add Add a new file/directory to the repository
...
then you've misspelled `pserver' in some way. If it isn't
obvious, check for invisible control characters (particularly
carriage returns) in `inetd.conf'.
If it fails to work at all, then make sure inetd is working right.
Change the invocation in `inetd.conf' to run the echo program
instead of cvs. For example:
2401 stream tcp nowait root /bin/echo echo hello
After making that change and instructing inetd to re-read its
configuration file, "telnet servername 2401" should show you the
text hello and then the server should close the connection. If
this doesn't work, you need to fix it before you can worry about
CVS problems.
On AIX systems, the system will often have its own program trying
to use port 2401. This is AIX's problem in the sense that port
2401 is registered for use with CVS. I hear that there is an AIX
patch available to address this problem.
Another good debugging tool is the `-d' (debugging) option to
inetd. Consult your system documentation for more information.
If you seem to be connecting but get errors like:
cvs server: cannot open /root/.cvsignore: Permission denied
cvs [server aborted]: can't chdir(/root): Permission denied
then you probably haven't specified `-f' in `inetd.conf'. (In
releases prior to CVS 1.11.1, this problem can be caused by your
system setting the `$HOME' environment variable for programs being
run by inetd. In this case, you can either have inetd run a shell
script that unsets `$HOME' and then runs CVS, or you can use `env'
to run CVS with a pristine environment.)
If you can connect successfully for a while but then can't, you've
probably hit inetd's rate limit. (If inetd receives too many
requests for the same service in a short period of time, it
assumes that something is wrong and temporarily disables the
service.) Check your inetd documentation to find out how to
adjust the rate limit (some versions of inetd have a single rate
limit, others allow you to set the limit for each service
separately.)
Info Catalog
(cvs.info.gz) Error messages
(cvs.info.gz) Troubleshooting
(cvs.info.gz) Other problems
automatically generated byinfo2html