在将Maven工件从Jenkins部署到Nexus时,我们会遇到一些零星的错误。我们从一开始就遇到了这些错误,但后来大约一周一次。现在我们在Jenkins上运行更多的作业(也是并行的),并且每小时运行一次。
Nexus版本为3.3.1。
这是完整的堆栈跟踪,如果有帮助的话:
2017-07-12 16:34:11,869+0200 WARN [qtp234963760-2207] pegasusgaswrite org.sonatype.nexus.repository.httpbridge.internal.ViewServlet - Failure servicing: PUT /nexus/repository/example-snapshots/com/example/example-parent/1.0-SNAPSHOT/example-parent-1.0-20170712.123107-9-api.jar
java.lang.IllegalArgumentException: Nested DB TX!
at com.google.common.base.Preconditions.checkArgument(Preconditions.java:122) [na:na]
at org.sonatype.nexus.repository.storage.StorageTxImpl.<init>(StorageTxImpl.java:146) [na:na]
at org.sonatype.nexus.repository.storage.StorageFacetImpl.openStorageTx(StorageFacetImpl.java:248) [na:na]
at org.sonatype.nexus.repository.storage.StorageFacetImpl.lambda$0(StorageFacetImpl.java:146) [na:na]
at org.sonatype.nexus.transaction.UnitOfWork.acquireTransaction(UnitOfWork.java:171) [na:na]
at org.sonatype.nexus.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:53) [na:na]
at org.sonatype.nexus.repository.maven.internal.MavenFacetImpl.put(MavenFacetImpl.java:200) [na:na]
at org.sonatype.nexus.repository.maven.internal.hosted.HostedHandler.doPut(HostedHandler.java:87) [na:na]
at org.sonatype.nexus.repository.maven.internal.hosted.HostedHandler.handle(HostedHandler.java:61) [na:na]
at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [na:na]
at org.sonatype.nexus.repository.storage.UnitOfWorkHandler.handle(UnitOfWorkHandler.java:39) [na:na]
at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [na:na]
at org.sonatype.nexus.repository.view.handlers.ContentHeadersHandler.handle(ContentHeadersHandler.java:44) [na:na]
at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [na:na]
at org.sonatype.nexus.repository.maven.internal.VersionPolicyHandler.handle(VersionPolicyHandler.java:60) [na:na]
at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [na:na]
at org.sonatype.nexus.repository.http.PartialFetchHandler.handle(PartialFetchHandler.java:55) [na:na]
at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [na:na]
at org.sonatype.nexus.repository.view.handlers.ConditionalRequestHandler.handle(ConditionalRequestHandler.java:72) [na:na]
at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [na:na]
at com.sonatype.nexus.plugins.healthcheck.downloads.AssetDownloadCountContributedHandler.handle(AssetDownloadCountContributedHandler.java:47) [na:na]
at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [na:na]
at org.sonatype.nexus.repository.view.handlers.HandlerContributor.handle(HandlerContributor.java:67) [na:na]
at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [na:na]
at org.sonatype.nexus.repository.view.handlers.ExceptionHandler.handle(ExceptionHandler.java:43) [na:na]
at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [na:na]
at org.sonatype.nexus.repository.security.SecurityHandler.handle(SecurityHandler.java:52) [na:na]
at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [na:na]
at org.sonatype.nexus.repository.view.handlers.TimingHandler.handle(TimingHandler.java:46) [na:na]
at org.sonatype.nexus.repository.view.Context.proceed(Context.java:80) [na:na]
at org.sonatype.nexus.repository.view.Context.start(Context.java:114) [na:na]
at org.sonatype.nexus.repository.view.Router.dispatch(Router.java:63) [na:na]
at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:52) [na:na]
at org.sonatype.nexus.repository.view.ConfigurableViewFacet.dispatch(ConfigurableViewFacet.java:43) [na:na]
at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.dispatchAndSend(ViewServlet.java:198) [na:na]
at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.doService(ViewServlet.java:160) [na:na]
at org.sonatype.nexus.repository.httpbridge.internal.ViewServlet.service(ViewServlet.java:117) [na:na]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) [javax.servlet-api:3.1.0]
at com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:286) [com.google.inject:4.1.0]
[...]错误消息似乎来自StorageTxImpl.java
目前磁盘上有超过50 GB的空闲空间,内存使用率低于50%,所以我不认为这是一个资源问题。
发布于 2019-02-04 23:52:46
嵌套事务可能导致数据丢失,而OrientDB (由底层的Nexus使用)对此只有基本的支持。Nexus团队决定postpone the discussion是否使用它。
每当出现这种状态时,它们都会抛出错误(使用checkArgument):Nested DB TX!。我们发现重启Nexus实例是绕过它的最好方法。
https://stackoverflow.com/questions/45061466
复制相似问题