AuthDirDontVoteOnDirAuthBandwidth dangerous but fortunately broken
In 0.4.7.2-alpha during #40471 (closed) we added a new config option AuthDirDontVoteOnDirAuthBandwidth, defaulting to 1, which tried to make directory authorities omit the "w" line for relays with the Authority flag, when they compute the consensus.
This approach is dangerous because it relies on all of the directory authorities staying synchronized on the value: if some authorities have the feature and others either don't have it or pick a different value, then we will get conflicts in what consensus each of them computes.
See this huge warning at the top of networkstatus_compute_consensus() for details:
* <strong>WATCH OUT</strong>: You need to think before you change the
* behavior of this function, or of the functions it calls! If some
* authorities compute the consensus with a different algorithm than
* others, they will not reach the same result, and they will not all
* sign the same thing! If you really need to change the algorithm
* here, you should allocate a new "consensus_method" for the new
* behavior, and make the new behavior conditional on a new-enough
* consensus_method.
Now, fortunately in this particular case it is not so bad, because the way the new feature checks for the Authority flag is by checking rs_out->is_authority, and nothing ever sets that flag in rs_out.
I am currently planning to suggest reverting commit b7992d4f as part of resolving ticket #40698 (closed).