I haven't bisected the Python source tree in a long time and it seems our current way of making releases is messing it up.
# Start on tip of branch 3.9 (3.9)$ git bisect start
# 3.9 tip is good (3.9|BISECTING)$ git bisect good
# Switch to release 3.9.1, where the bug wasn't fixed yet (3.9|BISECTING)$ git checkout v3.9.1 [...] ((v3.9.1)|BISECTING)$ LANG=C git bisect bad Some good revs are not ancestors of the bad rev. git bisect cannot work properly in this case. Maybe you mistook good and bad revs?
How can this be worked around? Not being able to bisect a fix or regression is really annoying.