Open sagarkhushalani opened 7 months ago
Note: I also deleted all the blobstores and recreated the repos (thinking may be the blobstores were corrupt or something). This did not help either. We're still seeing that with various packages.
Hi @sagarkhushalani - thanks for opening an issue. I am unable to replicate the issue you've reported on the most recent version of Nexus Repository (3.67), are you able to upgrade and try again? We may have already delivered a fix for what you are reporting.
Hey @nblair Thanks for your response. We do have an upgrade coming up; I'll see if I can get that pulled in. I'll upgrade our server, and post back if the situation is any better/resolved (or not).
Just for my reference/sanity, why is that exception thrown? It is limited to npm (or seems to be).
Looking at the uses of that specific exception, it would only come up if the content you were trying to fetch wasn't available on the remote. Perhaps you have a configuration issue with the proxy, or some network interference in your environment? You could try setting a DEBUG logger for the "com.sonatype.nexus.repository.content.npm" package, or in versions 3.59.0 and later inspect the outbound request logger for more details.
@nblair
Unfortunately, upgrading did not help here.
WARN [qtp461485121-2012] *UNKNOWN org.sonatype.nexus.repository.httpbridge.internal.ViewServlet - Failure servicing: GET /repository/npm/read-pkg/-/read-pkg-5.2.0.tgz
com.sonatype.nexus.repository.npm.internal.NonResolvableTarballNameException: Could not find package read-pkg
at com.sonatype.nexus.repository.npm.internal.orient.OrientNpmProxyFacet.retrievePackageVersionTx(OrientNpmProxyFacet.java:489)
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.npm.internal.orient.OrientNpmProxyFacet.retrievePackageVersion(OrientNpmProxyFacet.java:478)
at com.sonatype.nexus.repository.npm.internal.orient.OrientNpmProxyFacet.getUrl(OrientNpmProxyFacet.java:218)
at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.logContentOrThrow(ProxyFacetSupport.java:367)
at org.sonatype.nexus.repository.proxy.ProxyFacetSupport.doGet(ProxyFacetSupport.java:334)
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.LastDownloadedHandler.handle(LastDownloadedHandler.java:59)
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.Context$proceed.call(Unknown Source)
at com.sonatype.nexus.repository.npm.internal.orient.OrientNpmProxyRecipe$_closure1.doCall(OrientNpmProxyRecipe.groovy:291)
at sun.reflect.GeneratedMethodAccessor213.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:107)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:323)
at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:274)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1030)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1135)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1030)
at groovy.lang.Closure.call(Closure.java:427)
at org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:50)
at org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:112)
at com.sun.proxy.$Proxy206.handle(Unknown Source)
Shouldn't not being able to fetch a package return a 404, or is this not-found different from a package not being found at all?
As you suggested, I'm going to request a network check.
@nblair confirmed that this is not a firewall issue. I'm still working with our other network people, but is there anything else here that you can think of?
What problem are you trying to solve? Nexus throws an exception and returns a 500 intermittently when an npm client is attempting to pull a package. So far, this has been noticed with the following packages:
Sample exception:
(there are more lines after this, I can post those if needed)
Do you have a workaround you are using at present?
No. Not entirely sure why this is happening. We are investigating on our end as well. Things I have tried:
What feature or behavior is this required for? N/A
How could we solve this issue? (Not knowing is okay!) Not sure :(
Tell us about your Nexus Repository deployment: what version, operating system, and database are you using?
Nexus v3.57.0
Server OS: RockyLinux 8
Database: OrientDB? Whatever Nexus comes with. No modification to database settings.
Anything else? This started quite suddenly, and I do not know of any changes upstream. It is not consistent. Sometimes, pulling packages will succeed.