Comment 6 for bug 485151

Revision history for this message
Robert Collins (lifeless) wrote :

@James: Yes, the chain of files probably need to be consistent, which likely means that client side smarts are more important.

For Etags, and rechecking that bug, the problem is that apache was using the inode, and that is different on every mirror, so round robin load balancing leads to caches pulling the content again. There was a suggestion in there to use
FileETag MTime Size
which would change appropriately. Remembering that:
 - packages files never replace content, they only write new unique files.
 - sources/packages/release contents do get replaced, but replacing them would change the mtime and thus the etag

The key bit from the other bug was 'if the rsync scripts are not preserving mtime, then I'd just turn off etags'. I'm concluding from that and that they are off that the mirror scripts don't preserve mtime?

However, a quick unscientific check suggests they do:
robertc@lifeless-64:/tmp$ wget -S http://archive.ubuntu.com/ubuntu/dists/karmic-proposed/main/dist-upgrader-all/0.126.9/karmic.tar.gz.gpg 2>&1 | grep Last-Modified
  Last-Modified: Mon, 02 Nov 2009 10:27:02 GMT
robertc@lifeless-64:/tmp$ wget -S http://archive.ubuntu.com/ubuntu/dists/karmic-proposed/main/dist-upgrader-all/0.126.9/karmic.tar.gz.gpg 2>&1 | grep Last-Modified
  Last-Modified: Mon, 02 Nov 2009 10:27:02 GMT
robertc@lifeless-64:/tmp$ wget -S http://au.archive.ubuntu.com/ubuntu/dists/karmic-proposed/main/dist-upgrader-all/0.126.9/karmic.tar.gz.gpg 2>&1 | grep Last-Modified
  Last-Modified: Mon, 02 Nov 2009 10:27:02 GMT
robertc@lifeless-64:/tmp$ wget -S http://us.archive.ubuntu.com/ubuntu/dists/karmic-proposed/main/dist-upgrader-all/0.126.9/karmic.tar.gz.gpg 2>&1 | grep Last-Modified
  Last-Modified: Mon, 02 Nov 2009 10:27:02 GMT
robertc@lifeless-64:/tmp$ wget -S http://eu.archive.ubuntu.com/ubuntu/dists/karmic-proposed/main/dist-upgrader-all/0.126.9/karmic.tar.gz.gpg 2>&1 | grep Last-Modified
  Last-Modified: Mon, 02 Nov 2009 10:27:02 GMT

In which case we would be more correct with Etag MTime Size, than None.