[OpenAFS] FC3 + AFS 1.3.7x Problems (was: rought timeline for 1.4.x)

Rudolph T. Maceyko rtm@cert.org
Tue, 04 Jan 2005 12:32:52 -0500


--On Wednesday, December 22, 2004 05:18:19 PM -0500 "Rudolph T.
Maceyko" <rtm@cert.org> wrote:

> But now copying only takes 2 minutes and *so far* I've received the
> file intact.  I'll run through a couple more times and write back
> since I also saw *occasional* successes even when using the disk
> cache...

So far, the results using memcache are: good (but I haven't done any
further timing tests).  The results using disk cache are: bad (some
silent truncation/corruption using Derrick's suggested patch to rx.c
from 2004-12-22

--- rx.c        1 Dec 2004 23:36:48 -0000       1.66
+++ rx.c        22 Dec 2004 17:01:19 -0000
@@ -5032,8 +5032,11 @@
         if (!(call->flags & RX_CALL_TQ_BUSY)) {
             call->flags |= RX_CALL_TQ_BUSY;
             do {
-               call->flags &= ~RX_CALL_NEED_START;
  #endif /* AFS_GLOBAL_RXLOCK_KERNEL */
+           restart:
+#ifdef AFS_GLOBAL_RXLOCK_KERNEL
+               call->flags &= ~RX_CALL_NEED_START;
+#endif
                 nXmitPackets = 0;
                 maxXmitPackets = MIN(call->twind, call->cwind);
                 xmitList = (struct rx_packet **)
@@ -5085,7 +5088,12 @@
                     /* Transmit the packet if it needs to be sent. */

                     if (!clock_Lt(&now, &p->retryTime)) {
                         if (nXmitPackets == maxXmitPackets) {
-                           osi_Panic("rxi_Start: xmit list
overflowed");
+                           rxi_SendXmitList(call, xmitList,
nXmitPackets,
+                                            istack, &now, &retryTime,
+                                            resending);
+                           osi_Free(xmitList, maxXmitPackets *
+                                    sizeof(struct rx_packet *));
+                           goto restart;
                         }
                         xmitList[nXmitPackets++] = p;
                     }