1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

bugspot で android の bug prediction

Last updated at Posted at 2016-02-13

Overview

Ubuntu 12.04環境下や14.04環境下で、bugspotsを動かそうとした時にハマったので、メモ。
一部、patchして動かしました。。。。
(下書きにしておいたままだったので、せっかくなのでpostしておきます...)

depended modules

$ sudo apt-get install ruby-dev
$ sudo apt-get install cmake

bugspots

$ sudo gem install bugspots

patch for bugspots

/var/lib/gems/1.9.1/gems/bugspots-0.2.1/lib/bugspots/scanner.rb
  def self.scan(repo, branch = "master", depth = 500, regex = nil)
..snip..
    repo = Rugged::Repository.new(repo)
-    unless repo.branches.each_name(:local).sort.find { |b| b == branch }
-      raise ArgumentError, "no such branch in the repo: #{branch}"
-    end
+    head = nil
+    repo.branches.each_name do |a|
+      if a == branch then
+        head = repo.branches[a].name
+      end
+    end
+    if head == nil then
+      puts "ERROR: no such branch in the repo: #{branch}"
+      puts ""
+      puts "Available branches :"
+      repo.branches.each_name do |a|
+	puts a
+      end
+      exit(-1)
+    end

    walker = Rugged::Walker.new(repo)
    walker.sorting(Rugged::SORT_TOPO | Rugged::SORT_REVERSE)
-   walker.push(repo.branches[branch].target)
+   walker.push(repo.branches[head].target)
    walker.each do |commit|
+     row = commit.message.split("\n")
-     if commit.message =~ regex
+     if row[0].strip =~ regex

実行結果

~/work/android-6.0.0_r26/system/vold$ bugspots . -r '^(?!am |[Mm]erge ).*[fF]ix' -b aosp/master
Scanning . repo
	Found 62 bugfix commits, with 32 hotspots:

	Fixes:
		- vold2: Fix a mb -> sector conversion refactor bug
		- vold2: Fix issue with destroying / unmounting asec
		- vold: Fix share status argument off by one
		- vold: Fix a few bugs
		- vold: Fix format argument bug
		- vold: Fix devmapper/ptmx fd leak, and give asec unmount more time
		- vold: fix infinite loop when failing to unmount a busy container in unmountVolume()
		- vold: Fix uninitialized mountpoint bug
		- vold: Bugfixes & cleanups
		- vold: Fix argument validation for volume commands
		- Fix loop_info/loop_info64 impedance mismatch
		- Fixes for devices with internal FAT file system:
		- More fixes for internal FAT partitions:
		- vold: fix an offset one bug that makes partition 4 unusable
		- fix double closing file descriptors
		- Fix to display the proper percentage complete during encryption.
		- Fix cryptfs to work with a raw block device for key storage
		- Fix to not return a bogus decryption error when a device is not encrypted.
		- Fix vdc to add sequence number for NativeConectorDaemon
		- Fix truncation of ASEC ids
		- Fix truncation of ASEC ids
		- Fix a typo in cryptfs.c
		- Fix encryption on certain devices
		- Fix encryption on certain devices
		- Another fix for encryption
		- Fix vold's use of readdir_r(3).
		- Fix issue #7503920: Log spew from vold
		- Fix calls to logwrap
		- Fix compiling warnings
		- Fix a typo in a comment
		- Fix spelling.
		- vold: fix potential socket leak
		- Fix crash in vold
		- DO NOT MERGE. Fix crash in vold
		- vold: fix warnings for 64-bit
		- vold: fix errors inside ALOGV
		- Fix setfield/getfield
		- vdc: fix segfault
		- Fix encryption on Nakasi
		- Fixed bugs with ASEC filesystem.
		- Fix encryption on Nakasi
		- Fix vold %lld to PRId64.
		- Fix an accidental PRId64 to PRIx64.
		- Fix failure erasing SD in Factory reset
		- fstrim: fix typo in log message for FIDTRIM case
		- Fix Vold to properly handle full-disk file systems
		- Fix Shamus bricked by encryption upgrade
		- Fix encrypt-and-wipe
		- Fix error in clocks leading to devices staying unlocked
		- Fix alignment of buffer used for dm_ioctl.
		- Remove unused local variable to fix the build
		- Fix missing #includes in system/vold.
		- Fix memory leak in upgrade_crypt_ftr
		- crytpfs: fix clobbering of crypto info on keymaster failure
		- Fixed type mismatch for ioctl(BLKGETSIZE)
		- Fix 64 bit builds.
		- Fix destroy ordering bug; add debug flag.
		- Fix signed issue with hex conversion.
		- Fix problem that reading/writing crypto footers wasn't identity
		- DO NOT MERGE Fix problem that reading/writing crypto footers wasn't identity
		- Fix erroneous comment in secdiscard.cpp, plus style fixes.
		- Fix ioctl parameter

	Hotspots:
		1.3139 - cryptfs.c
		0.6781 - Utils.cpp
		0.4932 - Ext4Crypt.cpp
		0.4142 - Disk.cpp
		0.3171 - VolumeManager.cpp
		0.3099 - secdiscard.cpp
		0.2164 - fstrim.c
		0.2139 - main.cpp
		0.2059 - Fat.cpp
		0.2026 - VoldUtil.h
		0.2000 - Loop.cpp
		0.2000 - Loop.h
		0.2000 - VoldUtil.c
		0.1250 - DirectVolume.cpp
		0.1240 - Android.mk
		0.0660 - DirectVolume.h
		0.0495 - Volume.cpp
		0.0494 - Ext4.cpp
		0.0435 - Ext4.h
		0.0383 - vdc.c
		0.0142 - NetlinkManager.cpp
		0.0053 - CommandListener.cpp
		0.0033 - Devmapper.cpp
		0.0001 - logwrapper.c
		0.0001 - Volume.h
		0.0000 - CommandListener.h
		0.0000 - Devmapper.h
		0.0000 - VolumeManager.h
		0.0000 - hash.h
		0.0000 - md5.c
		0.0000 - md5.h
		0.0000 - ProcessKiller.c
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?