Uploaded image for project: 'FishEye'
  1. FishEye
  2. FE-4288

Profile viewing source files in FECRU with autolink enabled

    XMLWordPrintable

Details

    • Suggestion
    • Resolution: Fixed
    • 2.9.0
    • None
    • Our product teams collect and evaluate feedback from a number of different sources. To learn more about how we use customer feedback in the planning process, check out our new feature policy.

    Description

      It appears that the view source page in FishEye is now taking a looong time to render.

      cmacneill noticed that the request thread is often blocked while parsing and rendering links of the source file.

      rstephens can you please compare a profile of a request viewing the source page before your changes with one from after your changes.

      Here is the thread in question:

       java.io.RandomAccessFile.readBytes(Native Method)
         java.io.RandomAccessFile.read(RandomAccessFile.java:338)
         com.cenqua.fisheye.io.BufferedRandomAccessInputStream.fill(BufferedRandomAccessInputStream.java:237)
         com.cenqua.fisheye.io.BufferedRandomAccessInputStream.read(BufferedRandomAccessInputStream.java:175)
         com.cenqua.fisheye.io.Utf16ERandomAccessIoStream.read(Utf16ERandomAccessIoStream.java:21)
         com.cenqua.fisheye.io.BufferedCharSequence.charAt(BufferedCharSequence.java:44)
         java.lang.Character.codePointAt(Character.java:2335)
         java.util.regex.Pattern$CharProperty.match(Pattern.java:3344)
         java.util.regex.Pattern$Curly.match(Pattern.java:3737)
         java.util.regex.Pattern$GroupHead.match(Pattern.java:4168)
         java.util.regex.Pattern$GroupHead.match(Pattern.java:4168)
         java.util.regex.Pattern$NotBehind.match(Pattern.java:4714)
         java.util.regex.Pattern$GroupHead.match(Pattern.java:4168)
         java.util.regex.Matcher.match(Matcher.java:1127)
         java.util.regex.Matcher.lookingAt(Matcher.java:579)
         com.cenqua.fisheye.syntax.RegexpMatchRule.lookingAt(RegexpMatchRule.java:82)
         com.cenqua.fisheye.syntax.RegexpMatchRule.process(RegexpMatchRule.java:48)
         com.cenqua.fisheye.syntax.ContextDefinition.generateRegions(ContextDefinition.java:52)
         com.cenqua.fisheye.syntax.Linker.insertLinks(Linker.java:43)
         com.cenqua.fisheye.web.ViewFileAction.doFile(ViewFileAction.java:351)
         com.cenqua.fisheye.web.ViewFileAction.handleDoFileRequest(ViewFileAction.java:252)
         com.cenqua.fisheye.web.ViewFileAction.handleFileRequest(ViewFileAction.java:240)
         com.cenqua.fisheye.web.ViewFileAction.handleRequest(ViewFileAction.java:154)
         com.cenqua.fisheye.web.BaseAction.processRequest(BaseAction.java:251)
         com.cenqua.fisheye.web.ActionDispatcherServlet.doIt(ActionDispatcherServlet.java:238)
         com.cenqua.fisheye.web.ActionDispatcherServlet.doGet(ActionDispatcherServlet.java:69)
         javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
         javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
         org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
         org.mortbay.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1272)
         com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:46)
         com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:66)
         com.atlassian.applinks.core.rest.context.ContextFilter.doFilter(ContextFilter.java:25)
         com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:74)
         com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:42)
         com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:77)
         com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:63)
         org.mortbay.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1264)
         com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:46)
         com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:77)
         com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:63)
         org.mortbay.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1264)
         org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:83)
         org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
         org.mortbay.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1264)
         com.atlassian.crucible.filters.CrucibleFilter.doFilter(CrucibleFilter.java:146)
         org.mortbay.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1264)
         com.cenqua.fisheye.web.filters.TotalityFilter.doFilter(TotalityFilter.java:286)
         org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
         org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
         org.mortbay.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1264)
         com.atlassian.security.auth.trustedapps.filter.TrustedApplicationsFilter.doFilter(TrustedApplicationsFilter.java:98)
         org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
         org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
         org.mortbay.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1264)
         com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:46)
         com.atlassian.plugin.servlet.filter.DelegatingPluginFilter$1.doFilter(DelegatingPluginFilter.java:66)
         com.atlassian.oauth.serviceprovider.internal.servlet.OAuthFilter.doFilter(OAuthFilter.java:55)
         com.atlassian.plugin.servlet.filter.DelegatingPluginFilter.doFilter(DelegatingPluginFilter.java:74)
         com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:42)
         com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:77)
         com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:63)
         org.mortbay.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1264)
         org.mortbay.servlet.UserAgentFilter.doFilter(UserAgentFilter.java:78)
         org.mortbay.servlet.GzipFilter.doFilter(GzipFilter.java:131)
         com.cenqua.fisheye.web.filters.CustomIncludableGzipFilter.doFilter(CustomIncludableGzipFilter.java:27)
         org.mortbay.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1264)
         com.cenqua.fisheye.web.filters.ProductInfoFilter.doFilter(ProductInfoFilter.java:44)
         org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
         org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
         org.mortbay.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1264)
         com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:46)
         com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:77)
         com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:63)
         org.mortbay.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1264)
         com.cenqua.fisheye.web.filters.UpfrontFilter.doFilter(UpfrontFilter.java:54)
         org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
         org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
         org.mortbay.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1264)
         com.atlassian.fecru.profiling.ProfilingServletFilter.doFilter(ProfilingServletFilter.java:74)
         org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
         org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
         org.mortbay.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1264)
         org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:399)
         org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
         org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
         org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)
         org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450)
         org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230)
         org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
         org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
         org.mortbay.jetty.Server.handle(Server.java:326)
         org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
         org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:928)
         org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549)
         org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
         org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
         org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410)
         org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:451)
      

      Attachments

        Activity

          People

            Unassigned Unassigned
            npellow Nick
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: