Deployments in Hawtio taking more time for clustered environment
Issue
- Using
Red Hat JBoss Fuse 6.1.0in clustered 3 node environment. Bundles are deployed through front-endHAWTIOconsole withFirefoxbrowser. For single deployments its taking more than 40 mins which includes creation of profile, adding configuration files , adding features repository and installing the feature. Same slowness is experienced while upgrading existing bundles also. Below is thread-dump taken at the time of slowness.
pool-367-thread-1" prio=6 tid=0x000000000c2d9800 nid=0x3198 runnable [0x0000000014f2d000]
java.lang.Thread.State: RUNNABLE
at org.eclipse.jgit.internal.storage.file.PackFile.idx(PackFile.java:164)
- locked <0x00000000c3747670> (a org.eclipse.jgit.internal.storage.file.PackFile)
at org.eclipse.jgit.internal.storage.file.PackFile.get(PackFile.java:255)
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.revwalk.RevWalk.getCachedBytes(RevWalk.java:853)
at org.eclipse.jgit.revwalk.RevCommit.parseHeaders(RevCommit.java:143)
at org.eclipse.jgit.revwalk.RewriteTreeFilter.include(RewriteTreeFilter.java:109)
at org.eclipse.jgit.revwalk.PendingGenerator.next(PendingGenerator.java:141)
at org.eclipse.jgit.revwalk.BlockRevQueue.<init>(BlockRevQueue.java:65)
at org.eclipse.jgit.revwalk.FIFORevQueue.<init>(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:162)
at io.fabric8.git.internal.CachingGitDataStore.addProfileData(CachingGitDataStore.java:152)
at io.fabric8.git.internal.CachingGitDataStore.addProfileData(CachingGitDataStore.java:152)
at io.fabric8.git.internal.CachingGitDataStore.pouplateVersionData(CachingGitDataStore.java:132)
at io.fabric8.git.internal.CachingGitDataStore$1$1.call(CachingGitDataStore.java:91)
at io.fabric8.git.internal.CachingGitDataStore$1$1.call(CachingGitDataStore.java:88)
at io.fabric8.git.internal.GitDataStore.gitOperation(GitDataStore.java:934)
- locked <0x00000000c3469200> (a java.lang.Object)
at io.fabric8.git.internal.GitDataStore.gitOperation(GitDataStore.java:901)
at io.fabric8.git.internal.GitDataStore.gitOperation(GitDataStore.java:896)
at io.fabric8.git.internal.CachingGitDataStore$1.load(CachingGitDataStore.java:88)
at io.fabric8.git.internal.CachingGitDataStore$1.load(CachingGitDataStore.java:85)
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 <0x00000000c346f9e0> (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:116)
at io.fabric8.git.internal.CachingGitDataStore.hasProfile(CachingGitDataStore.java:187)
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 <0x00000000c3202c18> (a io.fabric8.features.FabricFeaturesServiceImpl)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Locked ownable synchronizers:
- <0x00000000c3202e80> (a java.util.concurrent.ThreadPoolExecutor$Worker)
"pool-365-thread-1" prio=6 tid=0x000000000c2ed000 nid=0x2960 waiting for monitor entry [0x00000000123cf000]
java.lang.Thread.State: BLOCKED (on object monitor)
at io.fabric8.git.internal.GitDataStore.gitOperation(GitDataStore.java:906)
- waiting to lock <0x00000000c3469200> (a java.lang.Object)
at io.fabric8.git.internal.GitDataStore.gitOperation(GitDataStore.java:901)
at io.fabric8.git.internal.GitDataStore.gitOperation(GitDataStore.java:891)
at io.fabric8.git.internal.GitDataStore.pull(GitDataStore.java:1251)
at io.fabric8.git.internal.GitDataStore$1.run(GitDataStore.java:186)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask.runAndReset(Unknown Source)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(Unknown Source)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Locked ownable synchronizers:
- <0x00000000c3468a90> (a java.util.concurrent.ThreadPoolExecutor$Worker)
Environment
- Red Hat JBoss Fuse
- 6.1.0
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.