Uploaded image for project: 'Red Hat Process Automation Manager'
  1. Red Hat Process Automation Manager
  2. RHPAM-2359

Performance issues when opening assets with open Project Explorer

    XMLWordPrintable

Details

    • Release Notes
    • CR1
    • +
    • Hide
      • Use the attached niogit.zip containing 1000 drl files, unzip it in the start directory
      • Start the server
      • Navigate to the testproj1, wait until it is fully indexed
      • Open a drl
      • It takes 30-50 seconds to open
      Show
      Use the attached niogit.zip containing 1000 drl files, unzip it in the start directory Start the server Navigate to the testproj1, wait until it is fully indexed Open a drl It takes 30-50 seconds to open
    • 2019 Week 41-43 (from Okt 7), 2019 Week 44-46 (from Okt 28), 2019 Week 47-49 (from Nov 18)

    Description

      With a higher number of assets, opening an asset, such as a drl file with open Project Explorer, can take a long time.

      Taking thread dumps, we can see that the main activity is in ProjectExplorerImpl.getContent():

      "default task-41" #1065 prio=5 os_prio=0 tid=0x0000000019812800 nid=0x26f0 runnable [0x00007f37fd53b000]
         java.lang.Thread.State: RUNNABLE
      	at java.util.zip.Inflater.inflateBytes(Native Method)
      	at java.util.zip.Inflater.inflate(Inflater.java:259)
      	- locked <0x00000007793bb0c0> (a java.util.zip.ZStreamRef)
      	at org.eclipse.jgit.internal.storage.file.WindowCursor.inflate(WindowCursor.java:304)
      	at org.eclipse.jgit.internal.storage.file.PackFile.decompress(PackFile.java:357)
      	at org.eclipse.jgit.internal.storage.file.PackFile.load(PackFile.java:868)
      	at org.eclipse.jgit.internal.storage.file.PackFile.get(PackFile.java:275)
      	at org.eclipse.jgit.internal.storage.file.ObjectDirectory.openPackedObject(ObjectDirectory.java:471)
      	at org.eclipse.jgit.internal.storage.file.ObjectDirectory.openPackedFromSelfOrAlternate(ObjectDirectory.java:429)
      	at org.eclipse.jgit.internal.storage.file.ObjectDirectory.openObject(ObjectDirectory.java:420)
      	at org.eclipse.jgit.internal.storage.file.WindowCursor.open(WindowCursor.java:159)
      	at org.eclipse.jgit.treewalk.CanonicalTreeParser.reset(CanonicalTreeParser.java:214)
      	at org.eclipse.jgit.treewalk.CanonicalTreeParser.createSubtreeIterator0(CanonicalTreeParser.java:248)
      	at org.eclipse.jgit.treewalk.CanonicalTreeParser.createSubtreeIterator(CanonicalTreeParser.java:226)
      	at org.eclipse.jgit.treewalk.CanonicalTreeParser.createSubtreeIterator(CanonicalTreeParser.java:70)
      	at org.eclipse.jgit.treewalk.TreeWalk.enterSubtree(TreeWalk.java:1271)
      	at org.uberfire.java.nio.fs.jgit.util.commands.GetPathInfo.execute(GetPathInfo.java:82)
      	at org.uberfire.java.nio.fs.jgit.util.GitImpl.lambda$getPathInfo$3(GitImpl.java:397)
      	at org.uberfire.java.nio.fs.jgit.util.GitImpl$$Lambda$1025/1614525671.get(Unknown Source)
      	at org.uberfire.java.nio.fs.jgit.util.GitImpl.retryIfNeeded(GitImpl.java:473)
      	at org.uberfire.java.nio.fs.jgit.util.GitImpl.getPathInfo(GitImpl.java:394)
      	at org.uberfire.java.nio.fs.jgit.JGitFileSystemProvider.readAttributes(JGitFileSystemProvider.java:2073)
      	at org.uberfire.java.nio.file.Files.readAttributes(Files.java:638)
      	at org.uberfire.java.nio.file.Files.isDirectory(Files.java:995)
      	at org.guvnor.common.services.backend.file.LinkedDirectoryFilter.accept(LinkedDirectoryFilter.java:44)
      	at org.guvnor.common.services.backend.file.LinkedDirectoryFilter.accept(LinkedDirectoryFilter.java:25)
      	at org.uberfire.java.nio.fs.jgit.JGitFileSystemProvider$5$1.readNextEntry(JGitFileSystemProvider.java:1239)
      	at org.uberfire.java.nio.fs.jgit.JGitFileSystemProvider$5$1.hasNext(JGitFileSystemProvider.java:1200)
      	at org.guvnor.common.services.project.backend.server.ResourceResolver.getPackageNames(ResourceResolver.java:567)
      	at org.guvnor.common.services.project.backend.server.ResourceResolver.resolvePackages(ResourceResolver.java:276)
      	at org.kie.workbench.common.services.backend.project.KieModuleServiceImpl.resolvePackages(KieModuleServiceImpl.java:152)
      	at org.kie.workbench.common.services.backend.project.KieModuleServiceImpl$Proxy$_$$_WeldClientProxy.resolvePackages(Unknown Source)
      	at org.kie.workbench.common.screens.explorer.backend.server.ExplorerServiceHelper.getItems(ExplorerServiceHelper.java:285)
      	at org.kie.workbench.common.screens.explorer.backend.server.FolderListingResolver.getFolderListing(FolderListingResolver.java:75)
      	at org.kie.workbench.common.screens.explorer.backend.server.FolderListingResolver.resolve(FolderListingResolver.java:57)
      	at org.kie.workbench.common.screens.explorer.backend.server.ExplorerServiceHelper.getFolderListing(ExplorerServiceHelper.java:161)
      	at org.kie.workbench.common.screens.explorer.backend.server.ProjectExplorerContentResolver.setFolderListing(ProjectExplorerContentResolver.java:113)
      	at org.kie.workbench.common.screens.explorer.backend.server.ProjectExplorerContentResolver.moduleExplorerContentWithSelections(ProjectExplorerContentResolver.java:92)
      	at org.kie.workbench.common.screens.explorer.backend.server.ProjectExplorerContentResolver.resolve(ProjectExplorerContentResolver.java:84)
      	at org.kie.workbench.common.screens.explorer.backend.server.ExplorerServiceImpl.getContent(ExplorerServiceImpl.java:170)
      

      Attachments

        1. LoadingPE.gif
          LoadingPE.gif
          2.39 MB
        2. testproj1.zip
          437 kB

        Issue Links

          Activity

            People

              gcaponet Guilherme Caponetto
              rhn-support-mputz Martin Weiler (Inactive)
              Tomas David Tomas David
              Tomas David Tomas David
              Votes:
              0 Vote for this issue
              Watchers:
              10 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: