bug-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: TEST III


From: Paul Edwards
Subject: Re: TEST III
Date: Fri, 17 Oct 2003 08:48:26 GMT

"Pierre" <pceteaudatmacif.fr@netcourrier.com> wrote in message 
b86193eb.0310162329.1121f546@posting.google.com">news:b86193eb.0310162329.1121f546@posting.google.com...
> >
> > Run it 50+ times and see how many failures there are.
>
> Logging in to :pserver:cvsuser@recint2:2401/cvs_ptiee
> client3 sleeping 5 seconds
> client3 has woken up
> Le sous-programme assert a ÚchouÚ : fstat ( fileno (bc->fp), &s ) != -1, 
> fichier
>  buffer.c, ligne 1384
> cvs [login aborted]: received abort signal
>
> 105 failures out of 150

Ok, apply this one patch (only) to cvs 1.11.9 and tell me how many
failures out of 150...

Index: buffer.c
===================================================================
RCS file: /cvs/ccvs/src/buffer.c,v
retrieving revision 1.21.4.1
diff -c -r1.21.4.1 buffer.c
*** buffer.c 17 Feb 2003 21:19:12 -0000 1.21.4.1
--- buffer.c 17 Oct 2003 08:46:08 -0000
***************
*** 1452,1458 ****
--- 1452,1474 ----
  # ifndef NO_SOCKET_TO_FD
   /* shutdown() sockets */
   if (S_ISSOCK(s.st_mode))
+         {
+             printf("client4 sleeping 5 seconds\n");
+             sleep(5);
+             printf("client4 has woken up\n");
       shutdown ( fileno (bc->fp), 1);
+         }
+         /* FIXME:  On at least some AIX systems, there is
+            a race condition.  If you activate this sleep
+            command, you will find that you get an
+            assertion failure on the next call to this
+            function, on the fstat, in the situation where
+            you have client and server running on the same
+            machine, and you are running "cvs login".  This
+            is because the server exits, and the fileno is
+            no longer accessible to the client.  I expect
+            that this is an AIX bug, it probably has no
+            right to invalidate filenos. */
  # else
   {
   /* I'm not sure I like this empty block, but the alternative




reply via email to

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