threads / bug / 37423

Git Bug Report: bisect run failed to locate the right commit

Subject: Git Bug Report: bisect run failed to locate the right commit

## tl;dr

3 messages between Aug 27, 2014 and Aug 27, 2014.

replies: 2people: 3as markdown or json

李祐棠· Aug 27, 2014, 13:42 UTC · lore
Dear Git developers:
I just found a suspicious bug that might cause by git-bisect run. 

Version: The git version is 1.9.2, running on Archlinux 3.14.2

The step to produce the error: Here is the repository I participate: https://github.com/gawel/pyquery

It got a issue #74, that gives a wrong result in version 1.2.8 and this is fixed in 1.2.9

Here is the manual test script I use is "manualscript.py":
I use git bisect manually, search from 1.2.9(bad) to 1.2.8(good), I locate the commit that fixes this issue. The running log is attached in this file(manual).

However if I use the automatic script git bisect run with the script "auto script":

It will give a wrong answer, the log file is also attached(auto)
I wonder there might be some bugs in "bisect run", that give the different result. The bisect run give the wrong result, and manually there is no error in bisect
The test step is a little complicated, and I have to compress the test script and result in tar since mail server think the test code as spam. it's very sorry to bother you.

Sincerely YodaLee

20140827
Christian Couder· Aug 27, 2014, 14:15 UTC · re: 李祐棠 · lore

Re: Git Bug Report: bisect run failed to locate the right commit

Hi,
On Wed, Aug 27, 2014 at 3:42 PM, 李祐棠 <r01942008@ntu.edu.tw> wrote:
Show 23 quoted lines
> Dear Git developers:
>
> I just found a suspicious bug that might cause by git-bisect run.
>
> Version:
> The git version is 1.9.2, running on Archlinux 3.14.2
>
> The step to produce the error:
> Here is the repository I participate:
> https://github.com/gawel/pyquery
>
> It got a issue #74, that gives a wrong result in version 1.2.8
> and this is fixed in 1.2.9
>
> Here is the manual test script I use is "manualscript.py":
>
> I use git bisect manually, search from 1.2.9(bad) to 1.2.8(good), I locate the commit that fixes this issue. The running log is attached in this file(manual).
>
> However if I use the automatic script
> git bisect run
> with the script "auto script":
>
> It will give a wrong answer, the log file is also attached(auto)
Your "manual" log contains:
Bisecting: 0 revisions left to test after this (roughly 1 step)
[300cd0822505a4bd308acd1520ff3ef0f20f8635] fixed issue #19
$ ./manualscript.py
False
False
While your "auto" log contains:
Bisecting: 0 revisions left to test after this (roughly 1 step)
[300cd0822505a4bd308acd1520ff3ef0f20f8635] fixed issue #19
running ./autoscript.py
False
True

So for the commit 300cd0822505a4bd308acd1520ff3ef0f20f8635 it looks like your manualscript.py and your autoscript.py don't return the same result.

Could you check that by doing something like:

$ git checkout -b testscripts 300cd0822505a4bd308acd1520ff3ef0f20f8635 $ ./manualscript.py $ echo "manualscript.py exit code: $?" $ ./autoscript.py $ echo "autoscript.py exit code: $?"

?

By the way you can get a better bisect log by running "git bisect log" after your bisection.

Best, Christian.

Jeff King· Aug 27, 2014, 14:17 UTC · re: 李祐棠 · lore

Re: Git Bug Report: bisect run failed to locate the right commit

On Wed, Aug 27, 2014 at 01:42:45PM +0000, 李祐棠 wrote:
Show 10 quoted lines
> Here is the manual test script I use is "manualscript.py":
> 
> I use git bisect manually, search from 1.2.9(bad) to 1.2.8(good), I
> locate the commit that fixes this issue. The running log is attached
> in this file(manual).
> 
> However if I use the automatic script git bisect run with the script
> "auto script":
> 
> It will give a wrong answer, the log file is also attached(auto)
When you get to 300cd08225, your manual bisect shows this as bad:
  Bisecting: 0 revisions left to test after this (roughly 1 step)
  [300cd0822505a4bd308acd1520ff3ef0f20f8635] fixed issue #19
  $ ./manualscript.py 
  False
  False
  $ git bisect bad

When you hit the same commit with your automatic test, the output from your script is different:

  Bisecting: 0 revisions left to test after this (roughly 1 step)
  [300cd0822505a4bd308acd1520ff3ef0f20f8635] fixed issue #19
  running ./autoscript.py
  False
  True

which would yield "git bisect good" according to the simplified scripts you sent. I suspect your problem is in the test script.

-Peff

← back to recent threads