bug-cvs
[Top][All Lists]
Advanced

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

Re: TEST JJJ


From: Paul Edwards
Subject: Re: TEST JJJ
Date: Fri, 17 Oct 2003 11:47:53 GMT

"Pierre" <address@hidden> wrote in message news:address@hidden
> >Ok, apply this one patch (only) to cvs 1.11.9 and tell me how many
> >failures out of 150...
>
> client4 sleeping 5 seconds
> client4 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
>
> It fails 150 times out 150.

I'm expecting the latest III to fail 150 out of 150.

As well as doing III, I've got a new test, JJJ, which I am
expecting to fail 0 out of 150.

Assuming I am correct, and the numbers are III=150, JJJ=0,
then for test HHH, you need to use the patch in III instead of
the previous patch I gave you.  The purpose of HHH is to see
if Linux (or Sun etc) fail in the same way as AIX does.

So anyway, to an unmodified cvs 1.11.9, apply JJJ below, and
run 150 times.  And as usual, give me a count, plus the output
of one of the failed runs (if any), so that I can see it for
myself.

BFN.  Paul.


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 11:41:41 -0000
***************
*** 1452,1458 ****
--- 1452,1474 ----
  # ifndef NO_SOCKET_TO_FD
   /* shutdown() sockets */
   if (S_ISSOCK(s.st_mode))
+         {
       shutdown ( fileno (bc->fp), 1);
+             printf("client6 sleeping 5 seconds\n");
+             sleep(5);
+             printf("client6 has woken up\n");
+         }
+         /* 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
Index: server.c
===================================================================
RCS file: /cvs/ccvs/src/server.c,v
retrieving revision 1.284.2.9
diff -c -r1.284.2.9 server.c
*** server.c 3 Oct 2003 19:15:32 -0000 1.284.2.9
--- server.c 17 Oct 2003 11:41:52 -0000
***************
*** 5719,5724 ****
--- 5719,5730 ----
      {
   printf ("I LOVE YOU\n");
   fflush (stdout);
+
+         /* FIXME:  On AIX at least, in some circumstances,
+            there is a race condition in CVS which can be
+            circumvented with a pause here.  The race is
+            triggered by the shutdown(,1) call in buffer.c */
+         sleep(2);

  #ifdef SYSTEM_CLEANUP
   /* Hook for OS-specific behavior, for example socket subsystems on




reply via email to

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