Uploaded image for project: 'Red Hat Fuse'
  1. Red Hat Fuse
  2. ENTESB-2581

Git repo very slow after adding 100s of profiles

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Major
    • jboss-fuse-6.2
    • jboss-fuse-6.1
    • None
    • None
    • % %

    Description

      Customer has around 800 profiles added over ~100 commits to fabric's Git repo. A container upgrade was taking over 6 minutes and with the CPU spiking to 100% for the duration. Pertinent stack was:

      "pool-18-thread-1" prio=10 tid=0x00007f02dc2ba800 nid=0xa3d3 runnable [0x00007f03e86ad000]
      java.lang.Thread.State: RUNNABLE
      at java.util.zip.Inflater.inflateBytes(Native Method)
      at java.util.zip.Inflater.inflate(Inflater.java:259)

      • locked <0x0000000781773c98> (a java.util.zip.ZStreamRef)
        at org.eclipse.jgit.internal.storage.file.WindowCursor.inflate(WindowCursor.java:311)
        at org.eclipse.jgit.internal.storage.file.PackFile.decompress(PackFile.java:337)
        at org.eclipse.jgit.internal.storage.file.PackFile.load(PackFile.java:731)
        at org.eclipse.jgit.internal.storage.file.PackFile.get(PackFile.java:256)
        at org.eclipse.jgit.internal.storage.file.ObjectDirectory.openObject1(ObjectDirectory.java:371)
        at org.eclipse.jgit.internal.storage.file.FileObjectDatabase.openObjectImpl1(FileObjectDatabase.java:173)
        at org.eclipse.jgit.internal.storage.file.FileObjectDatabase.openObject(FileObjectDatabase.java:158)
        at org.eclipse.jgit.internal.storage.file.WindowCursor.open(WindowCursor.java:145)
        at org.eclipse.jgit.treewalk.CanonicalTreeParser.reset(CanonicalTreeParser.java:201)
        at org.eclipse.jgit.treewalk.CanonicalTreeParser.createSubtreeIterator0(CanonicalTreeParser.java:235)
        at org.eclipse.jgit.treewalk.CanonicalTreeParser.createSubtreeIterator(CanonicalTreeParser.java:213)
        at org.eclipse.jgit.treewalk.CanonicalTreeParser.createSubtreeIterator(CanonicalTreeParser.java:60)
        at org.eclipse.jgit.treewalk.TreeWalk.enterSubtree(TreeWalk.java:912)
        at org.eclipse.jgit.treewalk.TreeWalk.next(TreeWalk.java:566)
        at org.eclipse.jgit.revwalk.RewriteTreeFilter.include(RewriteTreeFilter.java:119)
        at org.eclipse.jgit.revwalk.PendingGenerator.next(PendingGenerator.java:141)
        at org.eclipse.jgit.revwalk.BlockRevQueue. (BlockRevQueue.java:65)
        at org.eclipse.jgit.revwalk.FIFORevQueue. (FIFORevQueue.java:64)
        at org.eclipse.jgit.revwalk.StartGenerator.next(StartGenerator.java:157)
        at org.eclipse.jgit.revwalk.RevWalk.next(RevWalk.java:414)
        at org.gitective.core.CommitUtils.getLastCommit(CommitUtils.java:418)
        at io.fabric8.git.internal.CachingGitDataStore.addProfileData(CachingGitDataStore.java:160)
        at io.fabric8.git.internal.CachingGitDataStore.addProfileData(CachingGitDataStore.java:150)
        at io.fabric8.git.internal.CachingGitDataStore.addProfileData(CachingGitDataStore.java:150)
        at io.fabric8.git.internal.CachingGitDataStore.addProfileData(CachingGitDataStore.java:150)
        at io.fabric8.git.internal.CachingGitDataStore.addProfileData(CachingGitDataStore.java:150)
        at io.fabric8.git.internal.CachingGitDataStore.addProfileData(CachingGitDataStore.java:150)
        at io.fabric8.git.internal.CachingGitDataStore.pouplateVersionData(CachingGitDataStore.java:130)
        at io.fabric8.git.internal.CachingGitDataStore$1$1.call(CachingGitDataStore.java:90)
        at io.fabric8.git.internal.CachingGitDataStore$1$1.call(CachingGitDataStore.java:87)
        at io.fabric8.git.internal.GitDataStore.gitOperation(GitDataStore.java:909)
      • locked <0x000000078155d6c8> (a java.lang.Object)
        at io.fabric8.git.internal.GitDataStore.gitOperation(GitDataStore.java:876)
        at io.fabric8.git.internal.GitDataStore.gitOperation(GitDataStore.java:871)
        at io.fabric8.git.internal.CachingGitDataStore$1.load(CachingGitDataStore.java:87)
        at io.fabric8.git.internal.CachingGitDataStore$1.load(CachingGitDataStore.java:84)
        at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3522)
        at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2315)
        at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2278)
      • locked <0x000000078155c1f8> (a com.google.common.cache.LocalCache$StrongEntry)
        at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2193)
        at com.google.common.cache.LocalCache.get(LocalCache.java:3932)
        at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3936)
        at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4806)
        at io.fabric8.git.internal.CachingGitDataStore.getVersionData(CachingGitDataStore.java:114)
        at io.fabric8.git.internal.CachingGitDataStore.hasProfile(CachingGitDataStore.java:185)
        at io.fabric8.internal.VersionImpl.getProfile(VersionImpl.java:100)
        at io.fabric8.internal.ContainerImpl$ContainerProfile.getParents(ContainerImpl.java:271)
        at io.fabric8.internal.ProfileOverlayImpl.fillParentProfiles(ProfileOverlayImpl.java:248)
        at io.fabric8.internal.ProfileOverlayImpl.getInheritedProfiles(ProfileOverlayImpl.java:243)
        at io.fabric8.internal.ProfileOverlayImpl.getConfigurations(ProfileOverlayImpl.java:346)
        at io.fabric8.internal.ProfileOverlayImpl.getContainerConfiguration(ProfileOverlayImpl.java:121)
        at io.fabric8.internal.ProfileImpl.getContainerConfigList(ProfileImpl.java:149)
        at io.fabric8.internal.ProfileOverlayImpl.getRepositories(ProfileOverlayImpl.java:106)
        at io.fabric8.features.FabricFeaturesServiceImpl.listInstalledRepositories(FabricFeaturesServiceImpl.java:327)
        at io.fabric8.features.FabricFeaturesServiceImpl.run(FabricFeaturesServiceImpl.java:93)
      • locked <0x00000007811fa720> (a io.fabric8.features.FabricFeaturesServiceImpl)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)

      Attachments

        Issue Links

          Activity

            People

              janstey@redhat.com Jonathan Anstey
              janstey@redhat.com Jonathan Anstey
              Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: