从詹金斯部署Maven的文物,我们的Nexus时,我们得到一些零星的错误。我们从一开始就经历了这些错误,但随后他们大约一个星期一次。现在,我们正在运行我们的詹金斯更多的就业机会(也并行),我们得到他们周围每小时一次。
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%,所以我不认为这是一个资源问题。
嵌套事务会导致dataloss和OrientDB(由下面的Nexus使用)只为它的基本支持。 Nexus的团队决定postpone the discussion是否使用与否。
每当这样的状态时,他们抛出的错误(与checkArgument):Nested DB TX!
。我们发现在重新启动的Nexus实例来规避它的最佳方式。