Bug in p2 proxy repository jar fetching fails - Sonatype Nexus Repository - Sonatype Community
Bug in p2 proxy repository jar fetching fails
post by liam.jackson on Apr 24, 2024
Hi,
We have just upgraded to nexus3 and there is a bug in the p2 proxy repository for nexus 3, where it cannot fetch all jars from old eclipse repositories, causing builds to fail.
This is not an issue in the last version of nexus 2.
The jar URL listed in this stack trace is publicly accessible. The repo mirrored is Eclipse software repository | The Eclipse Foundation
Strict Content type validation has been turned off.
2024-04-24 14:07:06,205+0000 WARN [qtp2132960782-76] *UNKNOWN com.sonatype.nexus.repository.p2.orient.internal.proxy.OrientP2ProxyFacet - Exception java.io.IOException: invalid header field checking remote for update, proxy repo neon-releases failed to fetch https://download.eclipse.org/releases/neon/201703231000/plugins/javax.wsdl_1.5.1.v201012040544.jar, content not in cache.
java.io.IOException: invalid header field
at java.util.jar.Attributes.read(Attributes.java:404)
at java.util.jar.Manifest.read(Manifest.java:234)
at java.util.jar.Manifest.<init>(Manifest.java:81)
at java.util.jar.Manifest.<init>(Manifest.java:73)
at com.sonatype.nexus.repository.p2.internal.util.AttributesParserManifest$1.createSpecificEntity(AttributesParserManifest.java:56)
at com.sonatype.nexus.repository.p2.internal.util.AttributesParserManifest$1.createSpecificEntity(AttributesParserManifest.java:1)
at com.sonatype.nexus.repository.p2.internal.util.JarExtractor.getSpecificEntity(JarExtractor.java:42)
at com.sonatype.nexus.repository.p2.internal.util.AttributesParserManifest.getAttributesFromBlob(AttributesParserManifest.java:67)
at com.sonatype.nexus.repository.p2.util.P2TempBlobUtils.loadAttributesFrom(P2TempBlobUtils.java:59)
at com.sonatype.nexus.repository.p2.util.P2TempBlobUtils.mergeAttributesFromTempBlob(P2TempBlobUtils.java:76)
at com.sonatype.nexus.repository.p2.orient.internal.proxy.OrientP2ProxyFacet.doPutComponent(OrientP2ProxyFacet.java:263)
at com.sonatype.nexus.repository.p2.orient.internal.proxy.OrientP2ProxyFacet.putComponent(OrientP2ProxyFacet.java:253)
at org.sonatype.nexus.transaction.TransactionalWrapper.proceedWithTransaction(TransactionalWrapper.java:58)
at org.sonatype.nexus.transaction.TransactionInterceptor.proceedWithTransaction(TransactionInterceptor.java:66)
at org.sonatype.nexus.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:55)
at com.sonatype.nexus.repository.p2.orient.internal.proxy.OrientP2ProxyFacet.store(OrientP2ProxyFacet.java:139)
at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.doGet(ProxyFacetSupport.java:320)
at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.lambda$1(ProxyFacetSupport.java:285)
at org.sonatype.nexus.common.cooperation2.internal.orient.OrientCooperation2$OrientCooperation2Builder.lambda$1(OrientCooperation2.java:69)
at org.sonatype.nexus.common.io.CooperatingFuture.performCall(CooperatingFuture.java:123)
at org.sonatype.nexus.common.io.CooperatingFuture.call(CooperatingFuture.java:65)
at org.sonatype.nexus.common.io.ScopedCooperationFactorySupport$ScopedCooperation.cooperate(ScopedCooperationFactorySupport.java:99)
at org.sonatype.nexus.common.cooperation2.internal.orient.OrientCooperation2$OrientCooperation2Builder.cooperate(OrientCooperation2.java:64)
at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.get(ProxyFacetSupport.java:295)
at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.get(ProxyFacetSupport.java:278)
at org.sonatype.nexus.repository.proxy.ProxyHandler.handle(ProxyHandler.java:53)
at org.sonatype.nexus.repository.view.Context.proceed(Context.java:88)
at org.sonatype.nexus.repository.storage.UnitOfWorkHandler.handle(UnitOfWorkHandler.java:39)
at org.sonatype.nexus.repository.view.Context.proceed(Context.java:88)
at org.sonatype.nexus.repository.view.handlers.ContentHeadersHandler.handle(ContentHeadersHandler.java:46)
at org.sonatype.nexus.repository.view.Context.proceed(Context.java:88)
at org.sonatype.nexus.repository.http.PartialFetchHandler.handle(PartialFetchHandler.java:59)
at org.sonatype.nexus.repository.view.Context.proceed(Context.java:88)
at org.sonatype.nexus.repository.view.handlers.ConditionalRequestHandler.handle(ConditionalRequestHandler.java:67)
at org.sonatype.nexus.repository.view.Context.proceed(Context.java:88)
at org.sonatype.nexus.repository.cache.NegativeCacheHandler.handle(NegativeCacheHandler.java:72)
at org.sonatype.nexus.repository.view.Context.proceed(Context.java:88)
at org.sonatype.analytics.internal.handler.AnalyticsBytesTransferredHandler.handle(AnalyticsBytesTransferredHandler.java:51)
at org.sonatype.nexus.repository.view.Context.proceed(Context.java:88)
at org.sonatype.analytics.internal.handler.AnalyticsBytesTransferredHandler.handle(AnalyticsBytesTransferredHandler.java:51)
at org.sonatype.nexus.repository.view.Context.proceed(Context.java:88)
at org.sonatype.nexus.repository.view.handlers.HandlerContributor.handle(HandlerContributor.java:67)
at org.sonatype.nexus.repository.view.Context.proceed(Context.java:88)
at org.sonatype.analytics.internal.LoginsCounterHandler.handle(LoginsCounterHandler.java:87)
at org.sonatype.nexus.repository.view.Context.proceed(Context.java:88)
at org.sonatype.analytics.internal.handler.AnalyticsMeteringHandler.handle(AnalyticsMeteringHandler.java:69)
at org.sonatype.nexus.repository.view.Context.proceed(Context.java:88)
at org.sonatype.nexus.repository.view.handlers.TimingHandler.handle(TimingHandler.java:58)
at org.sonatype.nexus.repository.view.Context.proceed(Context.java:88)
at org.sonatype.nexus.repository.view.Context.start(Context.java:179)
at org.sonatype.nexus.repository.view.Router.dispatch(Router.java:65)
at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:52)
at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:43)
at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.dispatchAndSend(ViewServlet.java:212)
at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.doService(ViewServlet.java:174)
at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.service(ViewServlet.java:126)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:293)
at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:283)
at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:184)
at com.google.inject.servlet.DynamicServletPipeline.service(DynamicServletPipeline.java:71)
at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:85)
at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.doFilter(AdviceFilter.java:108)
at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)
at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:154)
at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(OncePerRequestFilter.doFilter(AdviceFilterChain.java:66)
at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.doFilter(OncePerRequestFilter.java:137)
at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:154)
at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(OncePerRequestFilter.doFilter(AdviceFilterChain.java:66)
at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.doFilter(OncePerRequestFilter.java:137)
at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:154)
at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(OncePerRequestFilter.doFilter(AdviceFilterChain.java:66)
at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.doFilter(OncePerRequestFilter.java:137)
at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.doFilter(AdviceFilterChain.java:154)
at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(OncePerRequestFilter.doFilter(AdviceFilterChain.java:66)
at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.doFilter(OncePerRequestFilter.java:137)
at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.doFilter(AdviceFilterChain.java:154)
at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(OncePerRequestFilter.doFilter(AdviceFilterChain.java:66)
at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.doFilter(OncePerRequestFilter.java:137)
at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.doFilter(AdviceFilterChain.java:154)
at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(OncePerRequestFilter.doFilter(AdviceFilterChain.java:66)
at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.doFilter(OncePerRequestFilter.java:137)
at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.doFilter(AdviceFilterChain.java:154)
post by laurencet on Apr 24, 2024
What version of Sonatype Nexus Repository 3 did you upgrade to? From Version 3.21 P2 Proxy has been natively supported (no plugin required). Have you tried removing the plugin and using the native P2 Proxy?
The plugin has been archived so I wouldn’t imagine this would be fixed.
Upgrading: If you are using a version prior to 3.21 and upgrade to a newer version you will not be able to install the community plugin. No other changes are required and your existing data will remain intact.
post by liam.jackson on Apr 24, 2024
Hi, we are using Sonatype Nexus Repository OSS 3.67.1-01. Yes this bug is in the native p2 support, we have not installed any plugins into Nexus 3, sorry for the confusion.
post by mpiggott on Apr 30, 2024
The stacktrace suggests that the builtin Java parsers consider the manifest for this particular file to be invalid.
I believe the public issue would be - Some items cannot be retrieved by proxy in the p2 repository · Issue #350 · sonatype/nexus-public · GitHub
post by liam.jackson on May 1, 2024
Thanks, that does look like a similar issue. I’ll also add a comment there.