Uploaded image for project: 'AppFormer'
  1. AppFormer
  2. AF-2324

Performance issues when opening assets with open Project Explorer

    XMLWordPrintable

Details

    • 2019 Week 44-46 (from Okt 28)
    • 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
    • NEW
    • NEW

    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

        Issue Links

          Activity

            People

              gcaponet Guilherme Caponetto
              gcaponet Guilherme Caponetto
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: