Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-73524

Removed commit breaks mining

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Major Major
    • git-forensics-plugin
    • None
    • Jenkins LTS 2.452.3
      - Forensics API 2.4.0
      - Git Forensics 2.1.0

      In my repository is a commit, that was removed from all branches a while back. This commit was scanned by the mineRepository command exactly once. Now every subsequent run of mineRepository fails with a JGit error, unable to find the commit that was removed.

      [Forensics] Creating SCM miner to obtain statistics for affected repository files
      [Forensics] -> checking SCM 'git git@bitbucket.org:xxx/yyy.git'
      [Forensics] -> Git miner successfully created in working tree 'C:\Users\jenkins\workspace\zzz\src'
       > git rev-parse "HEAD^{commit}" # timeout=10
      [Forensics] [-ERROR-] Errors while mining the Git repository:
      [Forensics] [-ERROR-] Can't analyze commits for the repository C:\Users\jenkins\workspace\zzz\src\.git
      [Forensics] [-ERROR-] org.eclipse.jgit.errors.MissingObjectException: Missing unknown 6c373b9be639b39f70e483a4cf4ebc23207d8090
      [Forensics] [-ERROR-] 	at org.eclipse.jgit.internal.storage.file.WindowCursor.open(WindowCursor.java:136)
      [Forensics] [-ERROR-] 	at org.eclipse.jgit.lib.ObjectReader.open(ObjectReader.java:216)
      [Forensics] [-ERROR-] 	at org.eclipse.jgit.revwalk.RevWalk.parseAny(RevWalk.java:1144)
      [Forensics] [-ERROR-] 	at org.eclipse.jgit.revwalk.RevWalk.parseCommit(RevWalk.java:1055)
      [Forensics] [-ERROR-] 	at io.jenkins.plugins.forensics.git.miner.CommitAnalyzer.createTreeIteratorFor(CommitAnalyzer.java:95)
      [Forensics] [-ERROR-] 	at io.jenkins.plugins.forensics.git.miner.CommitAnalyzer.createTreeIteratorToCompareTo(CommitAnalyzer.java:82)
      [Forensics] [-ERROR-] 	at io.jenkins.plugins.forensics.git.miner.CommitAnalyzer.run(CommitAnalyzer.java:47)
      [Forensics] [-ERROR-] 	at io.jenkins.plugins.forensics.git.miner.RepositoryStatisticsCallback.invoke(RepositoryStatisticsCallback.java:45)
      [Forensics] [-ERROR-] 	at io.jenkins.plugins.forensics.git.miner.RepositoryStatisticsCallback.invoke(RepositoryStatisticsCallback.java:22)
      [Forensics] [-ERROR-] 	at org.jenkinsci.plugins.gitclient.AbstractGitAPIImpl.withRepository(AbstractGitAPIImpl.java:28)
      [Forensics] [-ERROR-] 	at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.withRepository(CliGitAPIImpl.java:83)
      [Forensics] [-ERROR-] 	at jdk.internal.reflect.GeneratedMethodAccessor243.invoke(Unknown Source)
      [Forensics] [-ERROR-] 	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      [Forensics] [-ERROR-] 	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
      [Forensics] [-ERROR-] 	at hudson.remoting.RemoteInvocationHandler$RPCRequest.perform(RemoteInvocationHandler.java:924)
      [Forensics] [-ERROR-] 	at hudson.remoting.RemoteInvocationHandler$RPCRequest.call(RemoteInvocationHandler.java:902)
      [Forensics] [-ERROR-] 	at hudson.remoting.RemoteInvocationHandler$RPCRequest.call(RemoteInvocationHandler.java:853)
      [Forensics] [-ERROR-] 	at hudson.remoting.UserRequest.perform(UserRequest.java:211)
      [Forensics] [-ERROR-] 	at hudson.remoting.UserRequest.perform(UserRequest.java:54)
      [Forensics] [-ERROR-] 	at hudson.remoting.Request$2.run(Request.java:377)
      [Forensics] [-ERROR-] 	at hudson.remoting.InterceptingExecutorService.lambda$wrap$0(InterceptingExecutorService.java:78)
      [Forensics] [-ERROR-] 	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
      [Forensics] [-ERROR-] 	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
      [Forensics] [-ERROR-] 	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
      [Forensics] [-ERROR-] 	at hudson.remoting.Engine$1.lambda$newThread$0(Engine.java:137)
      [Forensics] [-ERROR-] 	at java.base/java.lang.Thread.run(Thread.java:833)
      [Forensics] Analyzing the commit log of the Git repository 'C:\Users\jenkins\workspace\zzz\src'
      [Forensics] Found 15163 commits
      [Forensics] -> Created report in 8625 seconds
      [Forensics] -> 0 commits with differences analyzed
      [Forensics] -> 0 lines added
      [Forensics] -> 0 lines deleted
      

      Every run of mineRepository in this repository now looks like this and takes this long. It also never shows any commits analyzed for differences.

      There should be some way to recover from this state in order to get the mining results again.

      Sadly I'm unable to construct a way on how to reproduce this issue. Any attempt in a test repository failed to far. If you need any further information, do not hesitate to ask.

            drulli Ulli Hafner
            nitram Martin Karing
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: