[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: cvs error, please help
From: |
Gianni Mariani |
Subject: |
Re: cvs error, please help |
Date: |
Wed, 05 Dec 2001 04:54:01 +1100 |
User-agent: |
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.6) Gecko/20011120 |
You need to figure out what is causing the cvs pserver to die.
Check the system log. /var/log/messages on the server.
You could try setting :
`$CVS_CLIENT_LOG'
Used for debugging only in client-server mode. If set, everything
sent to the server is logged into ``$CVS_CLIENT_LOG'.in' and
everything sent from the server is logged into
``$CVS_CLIENT_LOG'.out'.
`$CVS_SERVER_SLEEP'
Used only for debugging the server side in client-server mode. If
set, delays the start of the server child process the specified
amount of seconds so that you can attach to it with a debugger.
You could also try adding '-t' to your pserver setup.
Is the :pserver: system is out of disk space ?
A brute force diagnostic method I use is 'strace' . Running it in pserver
mode means you need to run a program that forks off an strace and
then execs cvs pserver - it means coding up a little program like that.
The program below does exactly that. I used it once to diagnose a
cvs pserver problem from wincvs (it turned out that the user had
entered the wrong password)!
#include <stdlib.h>
#include <stdio.h>
#include <fcntl.h>
#include <errno.h>
#include <unistd.h>
#include <sys/types.h>
#include <string.h>
int main( int argc, char ** argv )
{
int errfd = open( "/tmp/fixer.log", O_RDWR | O_CREAT, 0777 );
int pid;
int ppid = getpid();
char buf[ 1024 ];
sprintf(
buf,
"UID = %d : EUID = %d: GID = %d : EGID = %d\n",
getuid(),
geteuid(),
getgid(),
getegid()
);
write( errfd, buf, strlen( buf ) );
pid = fork();
if ( pid == -1 ) {
int serrno = errno;
dup2( errfd, 2);
errno = serrno;
perror( "fork" );
exit( 1 );
}
if ( pid ) {
int serrno = errno;
sleep( 3 );
execv( argv[1], argv + 2 );
dup2( errfd, 2);
errno = serrno;
perror( "execv" );
exit( 1 );
} else {
// Child
char strpid[ 10 ];
char * argx[ 4 ];
dup2( errfd, 1);
dup2( errfd, 2);
argx[ 0 ] = argv[1];
argx[ 1 ] = "-p";
argx[ 2 ] = strpid;
argx[ 3 ] = 0;
sprintf( strpid, "%d", ppid );
execvp( "/usr/bin/strace", argx );
}
}
I doubt that you'll get to the last option, it's for people with
that macho who needs that damn manual attitude - Larry
is probably going to puke ! :)
Good luck
G
address@hidden wrote:
hi,
this mario from steinberg, germany
we are using cvs in our company and
recently got this strange error when we do comits:
cvs [server aborted]: received broken pipe signal
*****CVS exited normally with code 1*****
the commit process is aborted after finishing one
directory so we can not commit all files of our projects
in one run anymore (and this is annoying ;-)
do you know any solution for this? - I read the manual
and several web pages, without finding an answer
thanx in advance
mario
--
Tipp: Neuer Gewinnspiel-Service sorgt fuer Furore!
Wer hier nicht gewinnt, dem ist nicht mehr zu helfen...
http://webkatalog.freenet.de/perl/show.pl?uri=http://shortwin.de/index.cfm?pp_ID=18648ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ?úÿrû&j)bz(
b²Ò'~?ܾÏàz(ïè®m¶Y"ÿþf¢--ø'»ú+fùs(S(Ys(Y"ùb²Ø§~?â?úÿ