Почему некоторые VPN-клиенты ломают отладку Java и как обойти эту проблему? - PullRequest
0 голосов
/ 13 июня 2018

Я использую IntelliJ для разработки проекта Scala.

Из-за клиент-серверной архитектуры системы мои интеграционные тесты должны выполняться со следующими настройками в build.sbt:

fork in IntegrationTest := true
javaOptions in (IntegrationTest) ++= Seq("-Djdk.logging.allowStackWalkSearch=true", "-XX:PermSize=256M", "-XX:MaxPermSize=512M", "-Xmx1024m")
// for attaching with debugger to the processes under test
javaOptions in (IntegrationTest) += "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"

Обычно все работает нормально - тесты выполняются, отладка работает.

Иногда мне нужно установить VPN-соединение для доступа к некоторым ресурсам моей компании-сотрудника.Я использую Check Point Endpoint Security VPN (это официально рекомендованное программное обеспечение моего сотрудника, и я не уверен, что что-то еще будет работать).

Итак, если мне случится подключиться к VPN, а затемзапустите интеграционные тесты, после чего консоль SBT начнет зависать сразу после:

Listening for transport dt_socket at address: 5005

Точное сообщение:

Listening for transport dt_socket at address: 5025
[error] Uncaught exception when running tests: java.net.ConnectException: Connection timed out: connect
[trace] Stack trace suppressed: run last project/it:test for the full output.
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF8

Когда я запускаю last project/it:test (мне нужно перезагрузить консоль SBTво-первых, потому что он застрял в состоянии (busy) >) Я вижу это:

[debug] javaOptions: List(-Djdk.logging.allowStackWalkSearch=true, -XX:PermSize=256M, -XX:MaxPermSize=512M, -Xmx1024m, -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005)
[debug] Forking tests - parallelism = false
[debug] Create a single-thread test executor
[error] Uncaught exception when running tests: java.net.ConnectException: Connection timed out: connect

Иногда, когда я отключаю VPN и снова запускаю тесты, он начинает работать.Но частое отключение VPN не помогает, и мне приходится перезагружать компьютер.

Я попробовал некоторые менее драматичные решения - перезапустить IDE, убить все процессы java и javaw, посмотреть на результаты netstat, чтобы увидеть что-то еще, использующеепорт 5005, изменение порта на 5025 в build.sbt и перезагрузка консоли SBT ... ничего не работает, только перезагрузка и только до следующего раза, когда мне нужно будет подключиться к VPN.

Это кошмар.Я не хочу перезагружать свою машину каждый раз после подключения к VPN.Есть ли какое-то решение этого?Любые флаги Java?Какие-либо настройки сетевого стека Windows?Любые настройки VPN?

...