[Top][All Lists]

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


From: Paul Edwards
Subject: Re: TEST FFF & GGG
Date: Mon, 13 Oct 2003 11:22:52 GMT

"Pierre" <address@hidden> wrote in message news:address@hidden
> Test FFF :
> Complement :
> It took 1 second per cvs login unlike test DDD

It shouldn't have behaved any different, but that's why I always
do the test to make sure.  :-)

But in this case I think it was a misunderstanding, you need
to get a completely fresh copy of CVS 1.11.9 before applying
these patches.  I think you left the old patches in, e.g. the old
patch in lib/system.h or wherever.

But I've taken the precaution of making the sleep 2 seconds
instead of 1, that may make a difference too.  So see what
TEST FFF does with a fresh 1.11.9 and the below patch
(just the server.c bit).

> Test GGG :
> lastest buffer.c patch implies commit.c patch.

I meant use the entire CVS 1.11.8.  We're up to 1.11.9 so I've
provided a new patch against that instead, but the tests remain
the same.  So get 1.11.9, complete and unmodified, apply both
patches below, and confirm that the assertion failure happens
the first time you run it.

> You don't speak about
> it. Did I missed something ? Should I apply the commit.c patch to
> tests FFF and GGG ?

No, I know nothing about a commit.c and it is unrelated to any
of my changes.

BFN.  Paul.

Index: buffer.c
RCS file: /cvs/ccvs/src/buffer.c,v
retrieving revision
diff -c -r1.21.4.1 buffer.c
*** buffer.c 17 Feb 2003 21:19:12 -0000
--- buffer.c 13 Oct 2003 11:13:38 -0000
*** 1453,1458 ****
--- 1453,1472 ----
   /* shutdown() sockets */
   if (S_ISSOCK(s.st_mode))
       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. */
+         printf("client sleeping 5 seconds\n");
+         sleep(5);
+         printf("client has woken up\n");
  # 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
diff -c -r1.284.2.9 server.c
*** server.c 3 Oct 2003 19:15:32 -0000
--- server.c 13 Oct 2003 11:13:54 -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);

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

reply via email to

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