Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Log file explosion in API Endpoint /v2/repositories/{namespace}/{name}/content/{revision}/{path} #1729

Open
fnajera-rac-de opened this issue Jul 13, 2021 · 1 comment
Labels
bug Something isn't working pinned Pinnend issues are not touched by the stale bot

Comments

@fnajera-rac-de
Copy link

This was originally posted in #1702 (comment) but it seems it was not clear enough that it relates to the SCM API and the ticket got closed. So here is a new ticket with this issue.

During our tests, we found a "log explosion" in the REST API Endpoint /v2/repositories/{namespace}/{name}/content/{revision}/{path}

To reproduce, please use the same setup as in #1719

Use the API to ask for an existing file (for comparison):

curl %server%/scm/api/v2/repositories/%ns%/scmapierror/content/250089f24fb6c1d802a91d526620cd8d573d3410/folder/ThisIsIt/ThisIsIt.sln --user "[user:password]"

Empty result (expected due to how the setup was done), no errors in log file (expected).

And now asking for a non-existing file:

curl %server%/scm/api/v2/repositories/%ns%/scmapierror/content/250089f24fb6c1d802a91d526620cd8d573d3410/non-existing --user "[user:password]"

Output:

{"transactionId":"5SSd30M1I21f4","errorCode":"8LRncum0S1","context":[{"type":"Repository","id":"hg/scmapierror"}],"message":"could not execute cat command"}

And log file:

2021-07-13 14:41:07.226 [qtp1347137144-15724] [5kSd2zpsy21am] ERROR sonia.scm.repository.spi.HgCatCommand - could not execute cat command
com.aragost.javahg.commands.ExecutionException: non-existing: no such file in rev 250089f24fb6
        at com.aragost.javahg.internals.AbstractCommand.handleReturnCode(AbstractCommand.java:387)
        at com.aragost.javahg.internals.OutputChannelInputStream.findNextOutputChannelBlock(OutputChannelInputStream.java:173)
        at com.aragost.javahg.internals.OutputChannelInputStream.(OutputChannelInputStream.java:74)
        at com.aragost.javahg.internals.Server.runCommand(Server.java:409)
        at com.aragost.javahg.internals.AbstractCommand.launchStream(AbstractCommand.java:180)
        at com.aragost.javahg.commands.CatCommand.execute(CatCommand.java:56)
        at sonia.scm.repository.spi.HgCatCommand.getCatResultStream(HgCatCommand.java:66)
        at sonia.scm.repository.api.CatCommandBuilder.getStream(CatCommandBuilder.java:118)
        at sonia.scm.api.v2.resources.ContentResource.getHead(ContentResource.java:215)
        at sonia.scm.api.v2.resources.ContentResource.createContentHeader(ContentResource.java:198)
        at sonia.scm.api.v2.resources.ContentResource.get(ContentResource.java:122)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:170)
        at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:130)
        at org.jboss.resteasy.core.ResourceMethodInvoker.internalInvokeOnTarget(ResourceMethodInvoker.java:646)
        at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTargetAfterFilter(ResourceMethodInvoker.java:510)
        at org.jboss.resteasy.core.ResourceMethodInvoker.lambda$invokeOnTarget$2(ResourceMethodInvoker.java:460)
        at org.jboss.resteasy.core.interception.jaxrs.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:364)
        at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:462)
        at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:420)
        at org.jboss.resteasy.core.ResourceLocatorInvoker.invokeOnTargetObject(ResourceLocatorInvoker.java:192)
        at org.jboss.resteasy.core.ResourceLocatorInvoker.invoke(ResourceLocatorInvoker.java:152)
        at org.jboss.resteasy.core.ResourceLocatorInvoker.invokeOnTargetObject(ResourceLocatorInvoker.java:183)
        at org.jboss.resteasy.core.ResourceLocatorInvoker.invoke(ResourceLocatorInvoker.java:141)
        at org.jboss.resteasy.core.ResourceLocatorInvoker.invoke(ResourceLocatorInvoker.java:32)
        at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:492)
        at org.jboss.resteasy.core.SynchronousDispatcher.lambda$invoke$4(SynchronousDispatcher.java:261)
        at org.jboss.resteasy.core.SynchronousDispatcher.lambda$preprocess$0(SynchronousDispatcher.java:161)
        at org.jboss.resteasy.core.interception.jaxrs.PreMatchContainerRequestContext.filter(PreMatchContainerRequestContext.java:364)
        at org.jboss.resteasy.core.SynchronousDispatcher.preprocess(SynchronousDispatcher.java:164)
        at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:247)
        at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:249)
        at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:60)
        at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
        at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:290)
        at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:280)
        at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:184)
        at com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:89)
        at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85)
        at sonia.scm.legacy.RepositoryLegacyProtocolRedirectFilter$Worker.noRedirect(RepositoryLegacyProtocolRedirectFilter.java:127)
        at sonia.scm.legacy.RepositoryLegacyProtocolRedirectFilter$Worker.checkPathElements(RepositoryLegacyProtocolRedirectFilter.java:100)
        at sonia.scm.legacy.RepositoryLegacyProtocolRedirectFilter$Worker.doFilter(RepositoryLegacyProtocolRedirectFilter.java:89)
        at sonia.scm.legacy.RepositoryLegacyProtocolRedirectFilter.doFilter(RepositoryLegacyProtocolRedirectFilter.java:71)
        at sonia.scm.web.filter.HttpFilter.doFilter(HttpFilter.java:93)
        at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
        at sonia.scm.web.security.TokenRefreshFilter.doFilter(TokenRefreshFilter.java:83)
        at sonia.scm.web.filter.HttpFilter.doFilter(HttpFilter.java:93)
        at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
        at sonia.scm.filter.MDCFilter.doFilter(MDCFilter.java:103)
        at sonia.scm.web.filter.HttpFilter.doFilter(HttpFilter.java:93)
        at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
        at sonia.scm.web.filter.AuthenticationFilter.processChain(AuthenticationFilter.java:266)
        at sonia.scm.web.filter.AuthenticationFilter.handleAuthentication(AuthenticationFilter.java:225)
        at sonia.scm.web.filter.AuthenticationFilter.doFilter(AuthenticationFilter.java:109)
        at sonia.scm.web.security.ApiAuthenticationFilter.doFilter(ApiAuthenticationFilter.java:99)
        at sonia.scm.web.filter.HttpFilter.doFilter(HttpFilter.java:93)
        at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
        at sonia.scm.security.TokenExpiredFilter.doFilter(TokenExpiredFilter.java:66)
        at sonia.scm.web.filter.HttpFilter.doFilter(HttpFilter.java:93)
        at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
        at sonia.scm.filter.BaseUrlFilter.doFilter(BaseUrlFilter.java:109)
        at sonia.scm.web.filter.HttpFilter.doFilter(HttpFilter.java:93)
        at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
        at sonia.scm.metrics.HttpMetricsFilter.doFilter(HttpMetricsFilter.java:68)
        at sonia.scm.web.filter.HttpFilter.doFilter(HttpFilter.java:93)
        at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
        at org.apache.shiro.guice.web.SimpleFilterChain.doFilter(SimpleFilterChain.java:44)
        at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)
        at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)
        at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
        at org.apache.shiro.guice.web.SimpleFilterChain.doFilter(SimpleFilterChain.java:41)
        at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)
        at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)
        at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
        at org.apache.shiro.guice.web.SimpleFilterChain.doFilter(SimpleFilterChain.java:41)
        at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:450)
        at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
        at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
        at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
        at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)
        at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
        at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
        at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
        at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:121)
        at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:133)
        at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:201)
        at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
        at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:548)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
        at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:602)
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
        at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
        at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624)
        at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
        at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1435)
        at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
        at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:501)
        at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594)
        at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
        at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1350)
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
        at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:146)
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
        at org.eclipse.jetty.server.Server.handle(Server.java:516)
        at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:388)
        at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:633)
        at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:380)
        at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:273)
        at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
        at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
        at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
        at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
        at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
        at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
        at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
        at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:375)
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:773)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:905)
        at java.base/java.lang.Thread.run(Thread.java:829)

SCM-Manager 2.20.0

@stale
Copy link

stale bot commented Aug 26, 2021

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the stale Issue is stale and will be closed if no further activity occurs label Aug 26, 2021
@sdorra sdorra added the pinned Pinnend issues are not touched by the stale bot label Aug 26, 2021
@stale stale bot removed the stale Issue is stale and will be closed if no further activity occurs label Aug 26, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working pinned Pinnend issues are not touched by the stale bot
Projects
None yet
Development

No branches or pull requests

3 participants