[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: TEST III
From: |
Paul Edwards |
Subject: |
Re: TEST III |
Date: |
Mon, 13 Oct 2003 22:37:55 GMT |
"Pierre" <pceteaudatmacif.fr@netcourrier.com> wrote in message
b86193eb.0310130620.79d52190@posting.google.com">news:b86193eb.0310130620.79d52190@posting.google.com...
> The result :
>
> Fist time :
>
> client2 sleeping 5 seconds
> client2 has woken up
> client2 sleeping 5 seconds
> client2 has woken up
>
> Second time :
>
> client2 sleeping 5 seconds
> client2 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
Unfortunately this is not what I expected, I expected consistent
failure. Ok, so let's try again. You can keep calling this "TEST III",
as it is a consistent thread of testing. On an unmodified CVS 1.11.9,
can you apply the below patch, and then run it 50 or more times. I
am hoping that it will fail every time.
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 13 Oct 2003 22:35:19 -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("client3 sleeping 7 seconds\n");
+ sleep(7);
+ printf("client3 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 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 13 Oct 2003 22:35:31 -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
- Re: TEST FFF, (continued)
- Re: TEST AAA, Pierre, 2003/10/13
- Re: TEST AAA, Paul Edwards, 2003/10/13
- Re: TEST FFF, Pierre, 2003/10/13
- Re: TEST GGG, Pierre, 2003/10/13
- Re: TEST GGG, Paul Edwards, 2003/10/13
- Re: TEST FFF and GGG with sleep(1), Pierre, 2003/10/13
- Re: TEST III ?, Pierre, 2003/10/13
- Re: TEST III,
Paul Edwards <=
- Re: TEST III, Pierre, 2003/10/15
- Re: TEST III, Paul Edwards, 2003/10/16
- Re: TEST III, Pierre, 2003/10/17
- Re: TEST III, Paul Edwards, 2003/10/17
- Re: TEST JJJ, Pierre, 2003/10/17
- Re: TEST JJJ, Paul Edwards, 2003/10/17
- Re: TEST III, Pierre, 2003/10/17
- Re: TEST III, Paul Edwards, 2003/10/17
- Re: TEST JJJ, Paul Edwards, 2003/10/17
- Re: TEST III, Pierre, 2003/10/17