Nexus 一直为 Eclipse P2 远程存储库说 "Remote automatically blocked and unavailable"
Nexus keeps saying "Remote automatically blocked and unavailable" for Eclipse P2 remote repository
我将 Eclipse P2 存储库作为代理添加到我的 Nexus,但是在检查状态一段时间后,状态变为 "Remote automatically blocked and unavailable"。例如,我配置了存储库类型为 P2 的远程 URL http://download.eclipse.org/eclipse/updates/4.4/。那是正确的吗?它应该那样工作吗?
我以为我可能因为我的多次试验和错误而被列入黑名单,但是当我在 POM 中使用相同的 URL 作为存储库时,它工作得很好,即使它是从同一个 IP 获取的.所以似乎是 Nexus 代理配置有问题。我这样配置代理:
- 存储库类型:代理
- 提供商:P2 更新站点
- 格式:P2
- 政策:混合
- 远程存储位置:http://download.eclipse.org/eclipse/updates/3.6/
- 下载远程索引:false
- 启用自动屏蔽:真
- 文件内容验证:真
- 校验和策略:忽略
- 允许文件浏览:true
- 包括在搜索中:false
- 发布URL:正确
- 未找到缓存 TTL:1440 分钟
- 工件最大年龄:-1 分钟
- 元数据最长存在时间:1440 分钟
- 项目最大年龄:1440 分钟
- HTTP 请求设置:none 配置
问题出在这个配置上吗?
日志显示 "timeout":
2015-05-25 19:40:51,544+0200 DEBUG [proxy-3-thread-389] smith remote.storage.outbound - [eclipse-3.6-try1] HEAD http://download.eclipse.org/eclipse/updates/3.6/ - 30,00 s
2015-05-25 19:40:51,544+0200 DEBUG [proxy-3-thread-389] smith org.sonatype.nexus.proxy.storage.remote.httpclient.HttpClientRemoteStorage - HEAD method failed, will attempt GET. Exception: Connection pool timeout error while executing HEAD method [repositoryId="eclipse-3.6-try1", requestPath="/", remoteUrl="http://download.eclipse.org/eclipse/updates/3.6/"]
org.sonatype.nexus.proxy.RemoteStorageTransportOverloadedException: Connection pool timeout error while executing HEAD method [repositoryId="eclipse-3.6-try1", requestPath="/", remoteUrl="http://download.eclipse.org/eclipse/updates/3.6/"]
at org.sonatype.nexus.proxy.storage.remote.httpclient.HttpClientRemoteStorage.doExecuteRequest(HttpClientRemoteStorage.java:598) ~[nexus-core-2.11.2-03.jar:2.11.2-03]
at org.sonatype.nexus.proxy.storage.remote.httpclient.HttpClientRemoteStorage.executeRequest(HttpClientRemoteStorage.java:515) ~[nexus-core-2.11.2-03.jar:2.11.2-03]
at org.sonatype.nexus.proxy.storage.remote.httpclient.HttpClientRemoteStorage.executeRequestAndRelease(HttpClientRemoteStorage.java:622) ~[nexus-core-2.11.2-03.jar:2.11.2-03]
at org.sonatype.nexus.proxy.storage.remote.httpclient.HttpClientRemoteStorage.checkRemoteAvailability(HttpClientRemoteStorage.java:371) ~[nexus-core-2.11.2-03.jar:2.11.2-03]
at org.sonatype.nexus.proxy.storage.remote.AbstractHTTPRemoteRepositoryStorage.isReachable(AbstractHTTPRemoteRepositoryStorage.java:50) [nexus-core-2.11.2-03.jar:2.11.2-03]
at org.sonatype.nexus.proxy.repository.AbstractProxyRepository.isRemoteStorageReachable(AbstractProxyRepository.java:1660) [nexus-core-2.11.2-03.jar:2.11.2-03]
at org.sonatype.nexus.proxy.repository.AbstractProxyRepository$RemoteStatusUpdateCallable.call(AbstractProxyRepository.java:1634) [nexus-core-2.11.2-03.jar:2.11.2-03]
at org.sonatype.nexus.threads.MDCAwareCallable.call(MDCAwareCallable.java:44) [nexus-core-2.11.2-03.jar:2.11.2-03]
at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [shiro-core-1.2.3.jar:1.2.3]
at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [shiro-core-1.2.3.jar:1.2.3]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_31]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_31]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_31]
at java.lang.Thread.run(Thread.java:745) [na:1.8.0_31]
Caused by: org.apache.http.conn.ConnectionPoolTimeoutException: Timeout waiting for connection from pool
at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.leaseConnection(PoolingHttpClientConnectionManager.java:254) ~[httpclient-4.3.6.jar:4.3.6]
at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.get(PoolingHttpClientConnectionManager.java:231) ~[httpclient-4.3.6.jar:4.3.6]
at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:173) ~[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 org.sonatype.nexus.proxy.storage.remote.httpclient.HttpClientRemoteStorage.doExecuteRequest(HttpClientRemoteStorage.java:557) ~[nexus-core-2.11.2-03.jar:2.11.2-03]
... 13 common frames omitted
我不确定您为什么在 Maven POM 文件中使用 P2 存储库,但就从代理下载而言,这是正确的,并且适用于 4.4 和 3.6 URL .
我发现了这个问题 https://issues.sonatype.org/browse/NEXUS-5466,它很好地描述了我的问题。原因似乎是 Nexus 的内部问题,无法分配所需的内部资源。
我停止并重新启动 Nexus,现在问题消失了。
遗憾的是这个错误已被关闭为 "won't fix"。
您应该检查 nexus 中的代理配置。
配置的代理 url 和身份验证(如果提供)是否有效?
我将 Eclipse P2 存储库作为代理添加到我的 Nexus,但是在检查状态一段时间后,状态变为 "Remote automatically blocked and unavailable"。例如,我配置了存储库类型为 P2 的远程 URL http://download.eclipse.org/eclipse/updates/4.4/。那是正确的吗?它应该那样工作吗?
我以为我可能因为我的多次试验和错误而被列入黑名单,但是当我在 POM 中使用相同的 URL 作为存储库时,它工作得很好,即使它是从同一个 IP 获取的.所以似乎是 Nexus 代理配置有问题。我这样配置代理:
- 存储库类型:代理
- 提供商:P2 更新站点
- 格式:P2
- 政策:混合
- 远程存储位置:http://download.eclipse.org/eclipse/updates/3.6/
- 下载远程索引:false
- 启用自动屏蔽:真
- 文件内容验证:真
- 校验和策略:忽略
- 允许文件浏览:true
- 包括在搜索中:false
- 发布URL:正确
- 未找到缓存 TTL:1440 分钟
- 工件最大年龄:-1 分钟
- 元数据最长存在时间:1440 分钟
- 项目最大年龄:1440 分钟
- HTTP 请求设置:none 配置
问题出在这个配置上吗?
日志显示 "timeout":
2015-05-25 19:40:51,544+0200 DEBUG [proxy-3-thread-389] smith remote.storage.outbound - [eclipse-3.6-try1] HEAD http://download.eclipse.org/eclipse/updates/3.6/ - 30,00 s 2015-05-25 19:40:51,544+0200 DEBUG [proxy-3-thread-389] smith org.sonatype.nexus.proxy.storage.remote.httpclient.HttpClientRemoteStorage - HEAD method failed, will attempt GET. Exception: Connection pool timeout error while executing HEAD method [repositoryId="eclipse-3.6-try1", requestPath="/", remoteUrl="http://download.eclipse.org/eclipse/updates/3.6/"] org.sonatype.nexus.proxy.RemoteStorageTransportOverloadedException: Connection pool timeout error while executing HEAD method [repositoryId="eclipse-3.6-try1", requestPath="/", remoteUrl="http://download.eclipse.org/eclipse/updates/3.6/"] at org.sonatype.nexus.proxy.storage.remote.httpclient.HttpClientRemoteStorage.doExecuteRequest(HttpClientRemoteStorage.java:598) ~[nexus-core-2.11.2-03.jar:2.11.2-03] at org.sonatype.nexus.proxy.storage.remote.httpclient.HttpClientRemoteStorage.executeRequest(HttpClientRemoteStorage.java:515) ~[nexus-core-2.11.2-03.jar:2.11.2-03] at org.sonatype.nexus.proxy.storage.remote.httpclient.HttpClientRemoteStorage.executeRequestAndRelease(HttpClientRemoteStorage.java:622) ~[nexus-core-2.11.2-03.jar:2.11.2-03] at org.sonatype.nexus.proxy.storage.remote.httpclient.HttpClientRemoteStorage.checkRemoteAvailability(HttpClientRemoteStorage.java:371) ~[nexus-core-2.11.2-03.jar:2.11.2-03] at org.sonatype.nexus.proxy.storage.remote.AbstractHTTPRemoteRepositoryStorage.isReachable(AbstractHTTPRemoteRepositoryStorage.java:50) [nexus-core-2.11.2-03.jar:2.11.2-03] at org.sonatype.nexus.proxy.repository.AbstractProxyRepository.isRemoteStorageReachable(AbstractProxyRepository.java:1660) [nexus-core-2.11.2-03.jar:2.11.2-03] at org.sonatype.nexus.proxy.repository.AbstractProxyRepository$RemoteStatusUpdateCallable.call(AbstractProxyRepository.java:1634) [nexus-core-2.11.2-03.jar:2.11.2-03] at org.sonatype.nexus.threads.MDCAwareCallable.call(MDCAwareCallable.java:44) [nexus-core-2.11.2-03.jar:2.11.2-03] at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) [shiro-core-1.2.3.jar:1.2.3] at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83) [shiro-core-1.2.3.jar:1.2.3] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_31] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_31] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_31] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_31] Caused by: org.apache.http.conn.ConnectionPoolTimeoutException: Timeout waiting for connection from pool at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.leaseConnection(PoolingHttpClientConnectionManager.java:254) ~[httpclient-4.3.6.jar:4.3.6] at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.get(PoolingHttpClientConnectionManager.java:231) ~[httpclient-4.3.6.jar:4.3.6] at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:173) ~[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 org.sonatype.nexus.proxy.storage.remote.httpclient.HttpClientRemoteStorage.doExecuteRequest(HttpClientRemoteStorage.java:557) ~[nexus-core-2.11.2-03.jar:2.11.2-03] ... 13 common frames omitted
我不确定您为什么在 Maven POM 文件中使用 P2 存储库,但就从代理下载而言,这是正确的,并且适用于 4.4 和 3.6 URL .
我发现了这个问题 https://issues.sonatype.org/browse/NEXUS-5466,它很好地描述了我的问题。原因似乎是 Nexus 的内部问题,无法分配所需的内部资源。
我停止并重新启动 Nexus,现在问题消失了。
遗憾的是这个错误已被关闭为 "won't fix"。
您应该检查 nexus 中的代理配置。
配置的代理 url 和身份验证(如果提供)是否有效?