Uploaded image for project: 'Dev - Nexus Repo'
  1. Dev - Nexus Repo
  2. NEXUS-14591

If an npm metadata request to a proxy repository's remote times out you get a 500 response through nexus.

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: 2.14.4, 2.14.5
    • Fix Version/s: None
    • Component/s: NPM, Transport
    • Story Points:
      0

      Description

       

      If a proxy repository's request to it's remote server times out you will get a 500 response from Nexus.  The 500 response will be sent not only if you directly access the proxy repository, but also if you make the request through a group repository that contains the proxy:

      127.0.0.1 - admin [11/Oct/2017:11:11:39 -0500] "GET /nexus/content/groups/npm-group/gulp HTTP/1.1" 500 0 20021
      

       

      This should not be the case, when a proxy repository's remote cannot be reached this should be logged, but this should not result in a 500 response from Nexus.

       

      2017-10-11 11:11:39,378-0500 WARN [qtp1258555931-82] admin org.sonatype.nexus.content.internal.ContentServlet - org.sonatype.nexus.proxy.LocalStorageException: Metadata service error, caused by: java.net.SocketTimeoutException: Read timed out [client=127.0.0.1,ua=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36,req=GET http://localhost:8081/nexus/content/groups/npm-group/gulp]
      2017-10-11 11:11:39,383-0500 ERROR [qtp1258555931-82] org.sonatype.nexus.web.internal.ErrorPageFilter - Internal error
      org.sonatype.nexus.proxy.LocalStorageException: Metadata service error
      at com.bolyuba.nexus.plugin.npm.group.DefaultNpmGroupRepository.doRetrieveLocalItem(DefaultNpmGroupRepository.java:168) ~[na:na]
      at org.sonatype.nexus.proxy.repository.AbstractRepository.doRetrieveItem(AbstractRepository.java:1248) ~[nexus-core-2.14.4-03.jar:2.14.4-03]
      at org.sonatype.nexus.proxy.repository.AbstractGroupRepository.doRetrieveItem(AbstractGroupRepository.java:240) ~[nexus-core-2.14.4-03.jar:2.14.4-03]
      at org.sonatype.nexus.proxy.repository.AbstractRepository.retrieveItem(AbstractRepository.java:760) ~[nexus-core-2.14.4-03.jar:2.14.4-03]
      at org.sonatype.nexus.proxy.repository.AbstractRepository.retrieveItem(AbstractRepository.java:592) ~[nexus-core-2.14.4-03.jar:2.14.4-03]
      at org.sonatype.nexus.proxy.router.DefaultRepositoryRouter.retrieveItem(DefaultRepositoryRouter.java:155) ~[nexus-core-2.14.4-03.jar:2.14.4-03]
      at org.sonatype.nexus.content.internal.ContentServlet.doGet(ContentServlet.java:386) ~[na:na]
      at org.sonatype.nexus.content.internal.ContentServlet.service(ContentServlet.java:352) ~[na:na]
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:848) ~[javax.servlet-3.0.0.v201112011016.jar:na]
      at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:297) ~[guice-servlet-3.2.6.jar:3.2.6]
      at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:281) ~[guice-servlet-3.2.6.jar:3.2.6]
      at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:186) ~[guice-servlet-3.2.6.jar:3.2.6]
      at com.google.inject.servlet.AbstractServletPipeline.service(AbstractServletPipeline.java:65) ~[guice-servlet-3.2.6.jar:3.2.6]
      at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:112) ~[shiro-web-1.3.2.jar:1.3.2]
      at com.google.inject.servlet.AbstractFilterPipeline.dispatch(AbstractFilterPipeline.java:100) [guice-servlet-3.2.6.jar:3.2.6]
      at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82) [nexus-core-2.14.4-03.jar:2.14.4-03]
      at com.google.inject.servlet.AbstractFilterPipeline.dispatch(AbstractFilterPipeline.java:100) [guice-servlet-3.2.6.jar:3.2.6]
      at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82) [nexus-core-2.14.4-03.jar:2.14.4-03]
      at com.google.inject.servlet.AbstractFilterPipeline.dispatch(AbstractFilterPipeline.java:100) [guice-servlet-3.2.6.jar:3.2.6]
      at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82) [nexus-core-2.14.4-03.jar:2.14.4-03]
      at com.google.inject.servlet.AbstractFilterPipeline.dispatch(AbstractFilterPipeline.java:100) [guice-servlet-3.2.6.jar:3.2.6]
      at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82) [nexus-core-2.14.4-03.jar:2.14.4-03]
      at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) ~[shiro-web-1.3.2.jar:1.3.2]
      at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) ~[shiro-web-1.3.2.jar:1.3.2]
      at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) ~[shiro-web-1.3.2.jar:1.3.2]
      at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) ~[shiro-web-1.3.2.jar:1.3.2]
      at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) ~[shiro-web-1.3.2.jar:1.3.2]
      at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) ~[shiro-web-1.3.2.jar:1.3.2]
      at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) ~[shiro-web-1.3.2.jar:1.3.2]
      at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) ~[shiro-web-1.3.2.jar:1.3.2]
      at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) ~[shiro-web-1.3.2.jar:1.3.2]
      at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108) ~[shiro-web-1.3.2.jar:1.3.2]
      at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137) ~[shiro-web-1.3.2.jar:1.3.2]
      at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) ~[shiro-web-1.3.2.jar:1.3.2]
      at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) ~[shiro-web-1.3.2.jar:1.3.2]
      at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449) ~[shiro-web-1.3.2.jar:1.3.2]
      at org.sonatype.nexus.web.internal.SecurityFilter.executeChain(SecurityFilter.java:90) ~[nexus-core-2.14.4-03.jar:2.14.4-03]
      at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365) ~[shiro-web-1.3.2.jar:1.3.2]
      at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) ~[shiro-core-1.3.2.jar:1.3.2]
      at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) ~[shiro-core-1.3.2.jar:1.3.2]
      at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:383) ~[shiro-core-1.3.2.jar:1.3.2]
      at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362) ~[shiro-web-1.3.2.jar:1.3.2]
      at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125) ~[shiro-web-1.3.2.jar:1.3.2]
      at com.google.inject.servlet.AbstractFilterPipeline.dispatch(AbstractFilterPipeline.java:100) [guice-servlet-3.2.6.jar:3.2.6]
      at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82) [nexus-core-2.14.4-03.jar:2.14.4-03]
      at com.sonatype.nexus.licensing.internal.LicensingRedirectFilter.doFilter(LicensingRedirectFilter.java:135) ~[na:na]
      at com.google.inject.servlet.AbstractFilterPipeline.dispatch(AbstractFilterPipeline.java:100) [guice-servlet-3.2.6.jar:3.2.6]
      at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82) [nexus-core-2.14.4-03.jar:2.14.4-03]
      at com.yammer.metrics.web.WebappMetricsFilter.doFilter(WebappMetricsFilter.java:76) ~[metrics-web-2.2.0.jar:na]
      at org.sonatype.nexus.web.internal.CommonHeadersFilter.doFilter(CommonHeadersFilter.java:69) ~[nexus-core-2.14.4-03.jar:2.14.4-03]
      at org.sonatype.nexus.web.internal.ErrorPageFilter.doFilter(ErrorPageFilter.java:71) ~[nexus-core-2.14.4-03.jar:2.14.4-03]
      at org.sonatype.nexus.web.internal.BaseUrlHolderFilter.doFilter(BaseUrlHolderFilter.java:66) ~[nexus-core-2.14.4-03.jar:2.14.4-03]
      at org.sonatype.nexus.web.internal.HeaderPatternFilter.doFilter(HeaderPatternFilter.java:96) ~[nexus-core-2.14.4-03.jar:2.14.4-03]
      at com.google.inject.servlet.AbstractFilterPipeline.dispatch(AbstractFilterPipeline.java:100) [guice-servlet-3.2.6.jar:3.2.6]
      at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterChain.doFilter(NexusGuiceFilter.java:82) [nexus-core-2.14.4-03.jar:2.14.4-03]
      at org.sonatype.nexus.web.internal.NexusGuiceFilter$MultiFilterPipeline.dispatch(NexusGuiceFilter.java:56) [nexus-core-2.14.4-03.jar:2.14.4-03]
      at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:133) [guice-servlet-3.2.6.jar:3.2.6]
      at com.google.inject.servlet.GuiceFilter$1.call(GuiceFilter.java:130) [guice-servlet-3.2.6.jar:3.2.6]
      at com.google.inject.servlet.GuiceFilter$Context.call(GuiceFilter.java:203) [guice-servlet-3.2.6.jar:3.2.6]
      at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:130) [guice-servlet-3.2.6.jar:3.2.6]
      at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1476) [jetty-servlet-8.1.16.v20140903.jar:8.1.16.v20140903]
      at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:501) [jetty-servlet-8.1.16.v20140903.jar:8.1.16.v20140903]
      at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137) [jetty-server-8.1.16.v20140903.jar:8.1.16.v20140903]
      at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557) [jetty-security-8.1.16.v20140903.jar:8.1.16.v20140903]
      at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231) [jetty-server-8.1.16.v20140903.jar:8.1.16.v20140903]
      at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086) [jetty-server-8.1.16.v20140903.jar:8.1.16.v20140903]
      at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:429) [jetty-servlet-8.1.16.v20140903.jar:8.1.16.v20140903]
      at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193) [jetty-server-8.1.16.v20140903.jar:8.1.16.v20140903]
      at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020) [jetty-server-8.1.16.v20140903.jar:8.1.16.v20140903]
      at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135) [jetty-server-8.1.16.v20140903.jar:8.1.16.v20140903]
      at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) [jetty-server-8.1.16.v20140903.jar:8.1.16.v20140903]
      at com.yammer.metrics.jetty.InstrumentedHandler.handle(InstrumentedHandler.java:200) [metrics-jetty-2.2.0.jar:na]
      at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154) [jetty-server-8.1.16.v20140903.jar:8.1.16.v20140903]
      at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) [jetty-server-8.1.16.v20140903.jar:8.1.16.v20140903]
      at org.eclipse.jetty.server.Server.handle(Server.java:370) [jetty-server-8.1.16.v20140903.jar:8.1.16.v20140903]
      at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:494) [jetty-server-8.1.16.v20140903.jar:8.1.16.v20140903]
      at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:971) [jetty-server-8.1.16.v20140903.jar:8.1.16.v20140903]
      at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1033) [jetty-server-8.1.16.v20140903.jar:8.1.16.v20140903]
      at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644) [jetty-http-8.1.16.v20140903.jar:8.1.16.v20140903]
      at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235) [jetty-http-8.1.16.v20140903.jar:8.1.16.v20140903]
      at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82) [jetty-server-8.1.16.v20140903.jar:8.1.16.v20140903]
      at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:696) [jetty-io-8.1.16.v20140903.jar:8.1.16.v20140903]
      at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:53) [jetty-io-8.1.16.v20140903.jar:8.1.16.v20140903]
      at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608) [jetty-util-8.1.16.v20140903.jar:8.1.16.v20140903]
      at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543) [jetty-util-8.1.16.v20140903.jar:8.1.16.v20140903]
      at java.lang.Thread.run(Thread.java:745) [na:1.8.0_121]
      Caused by: java.net.SocketTimeoutException: Read timed out
      at java.net.SocketInputStream.socketRead0(Native Method) ~[na:1.8.0_121]
      at java.net.SocketInputStream.socketRead(SocketInputStream.java:116) ~[na:1.8.0_121]
      at java.net.SocketInputStream.read(SocketInputStream.java:171) ~[na:1.8.0_121]
      at java.net.SocketInputStream.read(SocketInputStream.java:141) ~[na:1.8.0_121]
      at sun.security.ssl.InputRecord.readFully(InputRecord.java:465) ~[na:1.8.0_121]
      at sun.security.ssl.InputRecord.read(InputRecord.java:503) ~[na:1.8.0_121]
      at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:973) ~[na:1.8.0_121]
      at sun.security.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:930) ~[na:1.8.0_121]
      at sun.security.ssl.AppInputStream.read(AppInputStream.java:105) ~[na:1.8.0_121]
      at org.apache.http.impl.io.SessionInputBufferImpl.streamRead(SessionInputBufferImpl.java:136) ~[httpcore-4.3.3.jar:4.3.3]
      at org.apache.http.impl.io.SessionInputBufferImpl.fillBuffer(SessionInputBufferImpl.java:152) ~[httpcore-4.3.3.jar:4.3.3]
      at org.apache.http.impl.io.SessionInputBufferImpl.readLine(SessionInputBufferImpl.java:270) ~[httpcore-4.3.3.jar:4.3.3]
      at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:140) ~[httpclient-4.3.6.jar:4.3.6]
      at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:57) ~[httpclient-4.3.6.jar:4.3.6]
      at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:260) ~[httpcore-4.3.3.jar:4.3.3]
      at org.apache.http.impl.DefaultBHttpClientConnection.receiveResponseHeader(DefaultBHttpClientConnection.java:161) ~[httpcore-4.3.3.jar:4.3.3]
      at org.apache.http.impl.conn.CPoolProxy.receiveResponseHeader(CPoolProxy.java:153) ~[httpclient-4.3.6.jar:4.3.6]
      at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:271) ~[httpcore-4.3.3.jar:4.3.3]
      at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:123) ~[httpcore-4.3.3.jar:4.3.3]
      at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:254) ~[httpclient-4.3.6.jar:4.3.6]
      at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:195) ~[httpclient-4.3.6.jar:4.3.6]
      at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:86) ~[httpclient-4.3.6.jar:4.3.6]
      at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:108) ~[httpclient-4.3.6.jar:4.3.6]
      at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184) ~[httpclient-4.3.6.jar:4.3.6]
      at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82) ~[httpclient-4.3.6.jar:4.3.6]
      at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:57) ~[httpclient-4.3.6.jar:4.3.6]
      at com.bolyuba.nexus.plugin.npm.service.internal.proxy.HttpProxyMetadataTransport.fetchPackageRoot(HttpProxyMetadataTransport.java:196) ~[na:na]
      at com.bolyuba.nexus.plugin.npm.service.internal.ProxyMetadataServiceImpl.mayUpdatePackageRoot(ProxyMetadataServiceImpl.java:247) ~[na:na]
      at com.bolyuba.nexus.plugin.npm.service.internal.ProxyMetadataServiceImpl.doGeneratePackageRoot(ProxyMetadataServiceImpl.java:207) ~[na:na]
      at com.bolyuba.nexus.plugin.npm.service.internal.GeneratorSupport.generatePackageRoot(GeneratorSupport.java:113) ~[na:na]
      at com.bolyuba.nexus.plugin.npm.service.internal.GroupMetadataServiceImpl.doGeneratePackageRoot(GroupMetadataServiceImpl.java:95) ~[na:na]
      at com.bolyuba.nexus.plugin.npm.service.internal.GeneratorSupport.generatePackageRoot(GeneratorSupport.java:113) ~[na:na]
      at com.bolyuba.nexus.plugin.npm.service.internal.GeneratorSupport.producePackageRoot(GeneratorSupport.java:82) ~[na:na]
      at com.bolyuba.nexus.plugin.npm.group.DefaultNpmGroupRepository.doRetrieveLocalItem(DefaultNpmGroupRepository.java:143) ~[na:na]
      ... 85 common frames omitted

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              Unassigned
              Reporter:
              rseddon Rich Seddon
              Last Updated By:
              Peter Lynch
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Dates

                Created:
                Updated:
                Date of First Response:

                  tigCommentSecurity.panel-title