On Wed, Jul 08, 2020 at 08:42:46AM -0700, Junio C Hamano wrote: > I am afraid that "there probably aren't other" may be overly > optimistic, as the bug in 2.26 crippled the negotiation logic and > forced it to punt, which was so severe that it would have hidden any > other bugs in the negotiation logic. If there is another bug in v2 > negotiation logic that makes the sender to omit objects that should > be sent, it would not have been observed in 2.26 because the effect > of the more severe bug was to cripple the negotiation logic itself > and to make it punt, sending more objects all the way down the > history. Now, with that larger bug fixed post 2.26, we can start to > see if there are other bugs hidden by it. I half-agree with this. The negotiation logic wasn't completely broken, and usually did the right thing. It was only the max_in_vain counting that was wrong. So definitely there could be another bug lurking that was hidden by that failure, and/or our fix could be incomplete. But I think we can have some confidence that there aren't other show-stopping bugs (in the negotiation code or elsewhere in v2) that showed up in other situations (and the real-world success reports we already got for that particular bug are also encouraging). So I'm not especially worried about having a repeat of the v2.26 situation (but I agree it's not impossible). > In any case, we've learned in 2.26 that it is unlikely that such > bugs would be uncovered until v2 is made the default again in a > released version to be used by more users. > > So, let's flip the default in -rc0; we can revert if we see > something funny in 2.28.1 in the worst case. And obviously I'm fine with this, given that my assessment of the risk is even less than yours. :) -Peff