From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: Date: Mon, 21 Nov 2005 08:12:43 -0500 From: Russ Cox To: Fans of the OS Plan 9 from Bell Labs <9fans@cse.psu.edu> Subject: Re: [9fans] stealing hard drive's contents In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline References: Topicbox-Message-UUID: af672d1a-ead0-11e9-9d60-3106f5b1d025 > vtWrite in venti/copy.c always gets called regardless to > the result of walk()s in the switch clause starting at > /sys/src/cmd/venti/copy.c:70. Or am I misreading the source? This is true, and that's intentional. If the block is missing on the one server, venti/copy prints an error and then keeps going. That's so that if there is a block missing, you still copy what you can. If the network flakes out mid-copy, it won't just affect one or two blocks and then come back. The session is being run over a single tcp connection with no redialing, so if you lose the network during one block, you're not going to be able to copy any of the rest of the blocks either. Oh! I see what happened. If there is a read error due to network failure (as opposed to do the block just being corrupt on the remote server) then venti/copy needs to call sysfatal to avoid vtwriting the block we were in the middle of. I'll fix this. Thanks for the report. Russ