[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;
}