Por que o Eclipse demora tanto para se conectar a um processo JUnitRunner quando o IPv6 está ativado?

0

Quando o IPv6 está habilitado em meu computador, passou meio minuto entre iniciar um novo processo JUnit e a árvore de teste aparecer na visualização JUnit.

Quando desativo o IPv6, os testes aparecem imediatamente.

O que eu vejo é que o processo é criado e depois cai ca. 30s em SocketImpl.connect() . Com netstat , consigo ver uma linha como esta:

tcp6       0      1 fe80::xxxx:xxxx:x:51019 ::1:48469               SYN_SENT

Por que isso acontece?

    
por Aaron Digulla 10.05.2012 / 09:29

1 resposta

1

Uma possibilidade:

O processo do executor está atendendo somente o 127.0.0.1 , o endereço de loopback do IPv4, mas o Eclipse está tentando se conectar ao localhost - que pode ser 127.0.0.1 ou ::1 , sendo o último loopback IPv6. Na maioria dos sistemas operacionais, o IPv6 está habilitado, será preferível, fazendo com que o Eclipse experimente o IPv6 ::1 primeiro.

Como o JUnitRunner não está escutando em nenhum endereço IPv6, o sistema operacional deve rejeitar conexões tentadas com um TCP RST (ou mayyybebe

Primeiro, verifique sua configuração de firewall ( ip6tables ) - não há motivo para bloquear as conexões de loopback de forma alguma. Teste com o firewall temporariamente desativado. Se nada ajudar, verifique se o Eclipse pode ser configurado para usar 127.0.0.1 ou se a JUnit pode ser configurada para escutar no IPv6 e no IPv4.

    
por 10.05.2012 / 11:15