Я запускаю maven в докере на кластере kubernetes.При извлечении зависимостей он иногда зависает на срок до 2 часов, регистрируя несколько ошибок connection timeout
, прежде чем он, наконец, завершится успешно.
[11:34:31] : [Step 1/2] [INFO] Downloading: http://repo1.maven.org/maven2/com/path/to/internal/artifact-20181129.112650-1.pom
[11:50:15] : [Step 1/2] Nov 29, 2018 11:50:15 AM org.apache.maven.wagon.providers.http.httpclient.impl.execchain.RetryExec execute
[11:50:15] : [Step 1/2] INFO: I/O exception (java.net.SocketException) caught when processing request to {}->http://repo1.maven.org:80: Connection timed out (Read failed)
[11:50:15] : [Step 1/2] Nov 29, 2018 11:50:15 AM org.apache.maven.wagon.providers.http.httpclient.impl.execchain.RetryExec execute
[11:50:15] : [Step 1/2] INFO: Retrying request to {}->http://repo1.maven.org:80
[12:05:59] : [Step 1/2] Nov 29, 2018 12:05:59 PM org.apache.maven.wagon.providers.http.httpclient.impl.execchain.RetryExec execute
[12:05:59] : [Step 1/2] INFO: I/O exception (java.net.SocketException) caught when processing request to {}->http://repo1.maven.org:80: Connection timed out (Read failed)
[12:05:59] : [Step 1/2] Nov 29, 2018 12:05:59 PM org.apache.maven.wagon.providers.http.httpclient.impl.execchain.RetryExec execute
[12:05:59] : [Step 1/2] INFO: Retrying request to {}->http://repo1.maven.org:80
[12:21:44] : [Step 1/2] Nov 29, 2018 12:21:44 PM org.apache.maven.wagon.providers.http.httpclient.impl.execchain.RetryExec execute
[12:21:44] : [Step 1/2] INFO: I/O exception (java.net.SocketException) caught when processing request to {}->http://repo1.maven.org:80: Connection timed out (Read failed)
[12:21:44] : [Step 1/2] Nov 29, 2018 12:21:44 PM org.apache.maven.wagon.providers.http.httpclient.impl.execchain.RetryExec execute
[12:21:44] : [Step 1/2] INFO: Retrying request to {}->http://repo1.maven.org:80
[12:37:28] : [Step 1/2] [INFO] Downloading: http://nexus/nexus/content/repositories/thirdparty/com/path/to/internal/artifact-20181129.112650-1.pom
Это происходит только для внутренних зависимостей, которые должны немедленно вернуться к нашему внутреннему хранилищу Nexus Maven.который также находится внутри кластера kubernetes.
tcpdump во время такого зависания показывает только повторные передачи, без ответа от центрального репо.кроме этого, захват заполняется ARP-запросами, пока, наконец, не произойдет откат, и он запросит наш внутренний сервер Nexus.
снимок экрана wireshark
Вот соответствующий разделmy pom.xml:
<repositories>
<repository>
<id>central</id>
<name>Maven Repository Switchboard</name>
<layout>default</layout>
<url>http://repo1.maven.org/maven2</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<repository>
<id>thirdparty</id>
<name>internal third party repo</name>
<url>${nexusUrl}/repositories/thirdparty</url>
</repository>
<repository>
<id>releases</id>
<name>internal releases repo</name>
<url>${nexusUrl}/repositories/releases</url>
</repository>
<repository>
<id>snapshots</id>
<name>internal snapshots repo</name>
<url>${nexusUrl}/repositories/snapshots</url>
</repository>
<repository>
<releases>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
<checksumPolicy>fail</checksumPolicy>
</releases>
<id>license4j-runtime-library</id>
<name>License4J Runtime Library Maven Repository</name>
<url>https://www.license4j.com/maven/</url>
<layout>default</layout>
</repository>
А вот мои settings.xml:
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
http://maven.apache.org/xsd/settings-1.0.0.xsd">
<localRepository/>
<interactiveMode/>
<usePluginRegistry/>
<offline/>
<pluginGroups/>
<servers>
<server>
<id>releases</id>
<username>XXX</username>
<password>YYY</password>
</server>
<server>
<id>snapshots</id>
<username>XXX</username>
<password>YYY</password>
</server>
</servers>
<mirrors/>
<proxies/>
<profiles/>
<activeProfiles/>
Это происходит время от времени, и яне могу найти основную причину.Я надеюсь, что кто-то где-то столкнулся с этим.