Re: Finding a rogue src/sys commit with bisection?

From: Alfred Perlstein <bright_at_mu.org>
Date: Sat, 15 Nov 2014 10:56:50 -0800
On 11/15/14, 10:43 AM, Steve Kargl wrote:
> Before I totally hose by /usr/src directory, does anyone
> have some guidelines on doing a binary search for a rogue
> commit in /usr/src/sys?.  Either cam or usb (or acpi?) has
> broken the ability to remove a external USB device once it
> is plugged into a usb port on my Dell Latitude D530 laptop.
> I know that a good kernel can be built with r271273 and
> a bad kernel comes from (nearly) top of tree at r274456.
>
> I assume I need to do somthing along the lines
>
> % cd /usr/src/sys
> % svn merge -r 274456:272864    (half way point between good and bad)
> (build kernel and test)
> % cd /usr/src/sys
> % svn revert -R .
> (assume 272864 builds working kernel)
> % svn merge -r 274456:273660   (1/2 point between 272864 and 274456).
>
> Rinse and repeat.
>
Use git, it has a built in bisector to shake this sort of thing out:

git clone --config remote.origin.fetch='+refs/notes/*:refs/notes/*' 
https://github.com/freebsd/freebsd.git

cd freebsd
git log # find the hash of the commit for r271273
HASH=the git hash you found
# then:
git bisect start
git bisect bad                 # Current version is bad
git bisect good $HASH

Now test compile / etc...

Then as things work or don't work you keep running:
git bisect good
-or-
git bisect bad

Then compile and test.. you should converge on the problem.

-Alfred
Received on Sat Nov 15 2014 - 17:56:57 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:54 UTC