PushIOvHelper errors

Alex Kiernan alexk at demon.net
Wed Sep 11 14:39:45 UTC 2002


I patched PushIOvHelper like this:

@@ -101,8 +101,13 @@
        }
        assert(sentiov <= queued_iov);
        gettimeofday(&start, NULL);
-       if (PushIOvHelper(newiov, &newiov_len) == FALSE)
+       if (PushIOvHelper(newiov, &newiov_len) == FALSE) {
+           /* if we fail, we don't have the appropriate recovery
mechanisms
+            * so just ditch any pending output (else we may overrun
+            * IOV_MAX) */
+           queued_iov = 0;
            return FALSE;
+       }

so that it didn't cause memory to get trashed when you got an error in
write.

But when I was about to commit it, I set to thinking - if we've a write
error and we don't cope with the retries, the client is going to be out
of sync with us, so should we just call ExitWithStats()?

-- 
Alex Kiernan, Principal Engineer, Development, THUS plc


More information about the inn-workers mailing list