[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 :

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

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 ];

"UID = %d : EUID = %d: GID = %d : EGID = %d\n",

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

address@hidden wrote:

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

-- Tipp: Neuer Gewinnspiel-Service sorgt fuer Furore! Wer hier nicht gewinnt, dem ist nicht mehr zu helfen...ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈ?úÿrû&j)bz(

reply via email to

[Prev in Thread] Current Thread [Next in Thread]