Problema: Após invocar o SVN na linha de comando em um servidor com firewall, nada visível acontece por 15 segundos e, em seguida, o programa é encerrado com o seguinte erro:
svn: E170013: Não é possível conectar-se a um repositório na URL 'SVN.REPOSITORY.REDACTED'
svn: E730054: Erro ao executar o contexto: Uma conexão existente foi forçosamente fechada pelo host remoto.
Investigação: A pesquisa na Internet sobre os erros acima não revelou nenhuma informação pertinente.
Rastreamento de processo (procmon) mostrou uma tentativa de conexão a um servidor Akamai (serviços de nuvem) após o handshake SSL / TLS para o servidor SVN. O nome do host para o servidor não foi mostrado no rastreio do processo. A pesquisa reversa de DNS mostrou a184-51-112-88.deploy.static.akamaitechnologies.com ou a184-51-112-80.deploy.static.akamaitechnologies.com como o nome do host, e o IP era 184.51.112.88 ou 184.51. 112,80 (2 entradas no cache do DNS).
A ferramenta de captura de pacotes (MMA) mostrou uma tentativa de conexão ao nome do host ctldl.windowsupdate.com após o handshake SSL / TLS para o servidor SVN.
A API do Windows Crypto estava tentando se conectar ao Windows Update para recuperar as informações de revogação de certificados (CRL - lista de revogação de certificados). O tempo limite padrão para a recuperação da CRL é de 15 segundos. O tempo limite para autenticação no servidor é de 10 segundos; como 15 é maior que 10, isso falha.
Resolução: A pesquisa na Internet revelou o seguinte: (veja também a imagem na parte inferior)
Solução 1: Diminuir a diretiva de grupo de tempo limite da CRL - > Configuração do computador - > Configurações do Windows - > Configurações de segurança - > Políticas de chave pública - > Configurações de validação do caminho do certificado - > Recuperação de Rede - veja a imagem abaixo.
support.microsoft.com/pt-BR/kb/2625048
blogs.technet.com/b/exchange/archive/2010/05/14/3409948.aspx
Solução 2: Abra o firewall para o tráfego da CRL
support.microsoft.com/pt-BR/kb/2677070
Solução 3: sinalizadores de linha de comando do SVN (não testado)
serverfault.com/questions/716845/tortoise-svn-initial-connect-timeout - solução de sinalizador de linha de comando do svn alternativo.
Informações adicionais: A depuração desse problema foi particularmente difícil. O SVN 1.8 desabilitou o suporte para a biblioteca Neon HTTP RA (acesso ao repositório) em favor da biblioteca Serf que removeu o registro de depuração do cliente. [1] Além disso, o código de erro SVN retornado não corresponde à string dada em svn_error_codes.h [2] Além disso, os códigos de erro SVN não podem ser mapeados facilmente para o rótulo ENUM, neste caso o código de erro SVN E170013 é mapeado para SVN_ERR_RA_CANNOT_CREATE_SESSION. / p>
- stackoverflow.com/questions/8416989/is-it-possible-to-get-svn-client-debug-output
- people.apache.org/~brane/svndocs/capi/svn__error__codes_8h.html#ac8784565366c15a28d456c4997963660a044e5248bb3a652768e5eb3105d6f28f
- code.google.com/archive/p/serf/issues/172
Alterações sugeridas ao SVN:
-
Ative a verbosidade no comando, como para todas as operações
-
Adicione o nome do erro ENUM ao stderr
-
Adicione o sinalizador de configuração para o log de depuração da biblioteca de Serf.