Setting FetchUselessDescriptors makes my Tor client fall off the consensus diff wagon and now its consensus is 25 hours old
I've been running an 0.4.5.7 Tor client with these not-entirely-usual settings:
LearnCircuitBuildTimeout 0
CircuitBuildTimeout 300 seconds
FetchDirInfoEarly 1
fetchuselessdescriptors 1
and I just noticed that my consensus files are a bit over a day old:
-rw------- 1 arma arma 20472 Apr 8 11:15 cached-certs
-rw------- 1 arma arma 2446182 Apr 26 22:25 cached-consensus
-rw------- 1 arma arma 58734275 Apr 26 14:20 cached-descriptors
-rw------- 1 arma arma 9753819 Apr 27 23:30 cached-descriptors.new
-rw------- 1 arma arma 48003467 Apr 26 17:12 cached-extrainfo
-rw------- 1 arma arma 4087642 Apr 26 21:04 cached-extrainfo.new
-rw------- 1 arma arma 2236873 Apr 26 22:30 cached-microdesc-consensus
-rw------- 1 arma arma 7245920 Apr 18 17:30 cached-microdescs
-rw------- 1 arma arma 2378075 Apr 26 22:30 cached-microdescs.new
$ date
Tue 27 Apr 2021 11:44:29 PM EDT
My notice-level log is full of messages like these, starting last night soon after the timestamp of those consensus docs:
Apr 26 23:03:21.922 [warn] Could not apply consensus diff received from server 128.31.0.34:9101
Apr 26 23:04:22.233 [warn] Refusing to apply consensus diff because the base consensus doesn't match the digest as found in the consensus diff header.
Apr 26 23:04:22.233 [warn] Expected: 86BB768703FFF6DAF09920997F9624BFF4D71D5FCDB254ABFEC6BB0981799D31; found: 2F6169E852D4ACC3BACA1C942514A59E8714CF444613B0C12672DDAA1AAB6D20
Apr 26 23:04:22.233 [warn] Could not apply consensus diff received from server 204.13.164.118:443
Apr 26 23:05:22.303 [warn] Refusing to apply consensus diff because the base consensus doesn't match the digest as found in the consensus diff header.
Apr 26 23:05:22.303 [warn] Expected: 86BB768703FFF6DAF09920997F9624BFF4D71D5FCDB254ABFEC6BB0981799D31; found: 2F6169E852D4ACC3BACA1C942514A59E8714CF444613B0C12672DDAA1AAB6D20
Apr 26 23:05:22.303 [warn] Could not apply consensus diff received from server 45.66.33.45:443
Apr 26 23:07:21.792 [warn] Refusing to apply consensus diff because the base consensus doesn't match the digest as found in the consensus diff header.
Apr 26 23:07:21.792 [warn] Expected: 86BB768703FFF6DAF09920997F9624BFF4D71D5FCDB254ABFEC6BB0981799D31; found: 2F6169E852D4ACC3BACA1C942514A59E8714CF444613B0C12672DDAA1AAB6D20
Apr 26 23:07:21.792 [warn] Could not apply consensus diff received from server 154.35.175.225:443
Apr 26 23:11:22.731 [warn] Refusing to apply consensus diff because the base consensus doesn't match the digest as found in the consensus diff header.
Apr 26 23:11:22.731 [warn] Expected: 86BB768703FFF6DAF09920997F9624BFF4D71D5FCDB254ABFEC6BB0981799D31; found: 2F6169E852D4ACC3BACA1C942514A59E8714CF444613B0C12672DDAA1AAB6D20
Apr 26 23:11:22.731 [warn] Could not apply consensus diff received from server 131.188.40.189:443
Apr 26 23:13:21.722 [warn] Refusing to apply consensus diff because the base consensus doesn't match the digest as found in the consensus diff header.
Apr 26 23:13:21.722 [warn] Expected: 86BB768703FFF6DAF09920997F9624BFF4D71D5FCDB254ABFEC6BB0981799D31; found: 2F6169E852D4ACC3BACA1C942514A59E8714CF444613B0C12672DDAA1AAB6D20
Apr 26 23:13:21.722 [warn] Could not apply consensus diff received from server 199.58.81.140:443
Apr 26 23:18:22.004 [warn] Refusing to apply consensus diff because the base consensus doesn't match the digest as found in the consensus diff header.
Apr 26 23:18:22.004 [warn] Expected: 6E49978088361DD8A6F6610B2014A6D33C0B7678D54517FBAF0D10D22B0C57FA; found: 56F1323CD31AE7E0AFA6068134BB9BF85E12E407C27ABBE549412D3E4B8F7FD5
Apr 26 23:18:22.004 [warn] Could not apply consensus diff received from server 154.35.175.225:443
Apr 26 23:19:22.962 [warn] Refusing to apply consensus diff because the base consensus doesn't match the digest as found in the consensus diff header.
Apr 26 23:19:22.962 [warn] Expected: 6E49978088361DD8A6F6610B2014A6D33C0B7678D54517FBAF0D10D22B0C57FA; found: 56F1323CD31AE7E0AFA6068134BB9BF85E12E407C27ABBE549412D3E4B8F7FD5
Apr 26 23:19:22.962 [warn] Could not apply consensus diff received from server 86.59.21.38:443
Apr 26 23:20:22.258 [warn] Refusing to apply consensus diff because the base consensus doesn't match the digest as found in the consensus diff header.
Apr 26 23:20:22.258 [warn] Expected: 6E49978088361DD8A6F6610B2014A6D33C0B7678D54517FBAF0D10D22B0C57FA; found: 56F1323CD31AE7E0AFA6068134BB9BF85E12E407C27ABBE549412D3E4B8F7FD5
Apr 26 23:20:22.258 [warn] Could not apply consensus diff received from server 204.13.164.118:443
Apr 26 23:21:22.679 [warn] Refusing to apply consensus diff because the base consensus doesn't match the digest as found in the consensus diff header.
Apr 26 23:21:22.679 [warn] Expected: 6E49978088361DD8A6F6610B2014A6D33C0B7678D54517FBAF0D10D22B0C57FA; found: 56F1323CD31AE7E0AFA6068134BB9BF85E12E407C27ABBE549412D3E4B8F7FD5
Apr 26 23:21:22.679 [warn] Could not apply consensus diff received from server 171.25.193.9:80
Apr 26 23:22:21.673 [warn] Refusing to apply consensus diff because the base consensus doesn't match the digest as found in the consensus diff header.
Apr 26 23:22:21.673 [warn] Expected: 6E49978088361DD8A6F6610B2014A6D33C0B7678D54517FBAF0D10D22B0C57FA; found: 56F1323CD31AE7E0AFA6068134BB9BF85E12E407C27ABBE549412D3E4B8F7FD5
Apr 26 23:22:21.673 [warn] Could not apply consensus diff received from server 128.31.0.34:9101
Apr 26 23:23:22.495 [warn] Refusing to apply consensus diff because the base consensus doesn't match the digest as found in the consensus diff header.
Apr 26 23:23:22.495 [warn] Expected: 6E49978088361DD8A6F6610B2014A6D33C0B7678D54517FBAF0D10D22B0C57FA; found: 56F1323CD31AE7E0AFA6068134BB9BF85E12E407C27ABBE549412D3E4B8F7FD5
Apr 26 23:23:22.495 [warn] Could not apply consensus diff received from server 131.188.40.189:443
Apr 26 23:27:21.740 [warn] Refusing to apply consensus diff because the base consensus doesn't match the digest as found in the consensus diff header.
Apr 26 23:27:21.740 [warn] Expected: 6E49978088361DD8A6F6610B2014A6D33C0B7678D54517FBAF0D10D22B0C57FA; found: 56F1323CD31AE7E0AFA6068134BB9BF85E12E407C27ABBE549412D3E4B8F7FD5
Apr 26 23:27:21.740 [warn] Could not apply consensus diff received from server 199.58.81.140:443
Apr 26 23:28:22.302 [warn] Refusing to apply consensus diff because the base consensus doesn't match the digest as found in the consensus diff header.
Apr 26 23:28:22.302 [warn] Expected: 6E49978088361DD8A6F6610B2014A6D33C0B7678D54517FBAF0D10D22B0C57FA; found: 56F1323CD31AE7E0AFA6068134BB9BF85E12E407C27ABBE549412D3E4B8F7FD5
Apr 26 23:28:22.302 [warn] Could not apply consensus diff received from server 45.66.33.45:443
Apr 26 23:32:22.935 [warn] Refusing to apply consensus diff because the base consensus doesn't match the digest as found in the consensus diff header.
Apr 26 23:32:22.935 [warn] Expected: 6E49978088361DD8A6F6610B2014A6D33C0B7678D54517FBAF0D10D22B0C57FA; found: 56F1323CD31AE7E0AFA6068134BB9BF85E12E407C27ABBE549412D3E4B8F7FD5
Apr 26 23:32:22.935 [warn] Could not apply consensus diff received from server 131.188.40.189:443
Apr 26 23:36:21.728 [warn] Refusing to apply consensus diff because the base consensus doesn't match the digest as found in the consensus diff header.
Apr 26 23:36:21.728 [warn] Expected: 6E49978088361DD8A6F6610B2014A6D33C0B7678D54517FBAF0D10D22B0C57FA; found: 56F1323CD31AE7E0AFA6068134BB9BF85E12E407C27ABBE549412D3E4B8F7FD5
Apr 26 23:36:21.728 [warn] Could not apply consensus diff received from server 199.58.81.140:443
[...]
Apr 27 22:45:24.792 [warn] Refusing to apply consensus diff because the base consensus doesn't match the digest as found in the consensus diff header.
Apr 27 22:45:24.792 [warn] Expected: 86BB768703FFF6DAF09920997F9624BFF4D71D5FCDB254ABFEC6BB0981799D31; found: 2F6169E852D4ACC3BACA1C942514A59E8714CF444613B0C12672DDAA1AAB6D20
Apr 27 22:45:24.792 [warn] Could not apply consensus diff received from server 171.25.193.9:80
Each of those attempts was a roughly 450KByte fetch which I then discarded.
This looks a lot like #26310 (closed), but I'm not a relay.
Should Tor at some point abandon its futile attempt to try to get a consensus diff, and fall back to just getting a full consensus?
Edited by Roger Dingledine