>>>>> "Neil" == Neil Williams <[email protected]> writes:

>> A version mismatch will occur exacty when a mirror update ocurred in
>> between the download of sources.bz2 and packages.bz2.  You want to
>> tell me that this is not possible, however your description of the
>> process makes it look like it is possible, though unlikely.

> How? apt opens the sockets and then starts the download. If the file
> changes, the download will abort. Both sockets are open before the
> download starts. Therefore, if the files download successfully, the
> files must be in the same state as when the sockets were originally
> opened. Are you trying to say that files change in the microsecond
> between the creation of one socket and the creation of the next socket
> on a multi-core server??

[..]

> Which, apart from the time which elapses between the opening of one
> socket and the opening of the next is already implemented.

Maybe if *I* ran a multi-core server and sit on the same LAN as debian's
mirror, opening of two sockets would be nearly synchronous and happen in
a "microsecond".

However, I'm pretty far away from the server, the 3-way handshake to
open a socket can vary a lot in its timing depending on latencies and
packet error rate.

With a realistic socket setup jitter of 100ms and one mirror update per
day, you'll fetch the wrong index file once in about 10^6 downloads.

Relying on uncontrollable network parameters for avoiding races sounds
like a bad idea to me.  Betting on non-deterministic software to
function, because malfunctioning looks unlikely, is not the best idea as
well.

cheers,

David
-- 
GnuPG public key: http://dvdkhlng.users.sourceforge.net/dk.gpg
Fingerprint: B17A DC95 D293 657B 4205  D016 7DEF 5323 C174 7D40

Attachment: pgpq7Xyocaa79.pgp
Description: PGP signature

Reply via email to