O VisualSVN Server 2.5.2 relata “413 Request Entity Too Large” ao tentar confirmar arquivos multigigabyte

1

Estou recebendo o seguinte erro ao tentar confirmar arquivos grandes (vários gigabytes) para uma nova instalação local do VisualSVN 2.5.2 Server em uma máquina com Windows XP.

"413 Request Entity Too Large"

Estou usando a autenticação do Windows e já adicionei as seguintes configurações (e reiniciei o servidor) ao httpd-custom.conf:

LimitXMLRequestBody 0
LimitRequestBody 0

Se for importante, estou a utilizar o TortoiseSVN como cliente.

Existe algo mais que precisa ser feito para que o VisualSVN Server aceite arquivos grandes?

Atualizar :

Conteúdo do visualizador de eventos do SVNServer:

1/13/2012 3:31:45 PM VisualSVN Server 2.5 Error Apache 1001 CORP\sam.johnson IOMFOX0960L Could not get next bucket brigade [500, #0] [client 10.155.60.53]
1/13/2012 3:31:45 PM VisualSVN Server 2.5 Error Apache 1001 CORP\sam.johnson IOMFOX0960L Invalid Content-Length [client 10.155.60.53]

    
por Sam Johnson 13.01.2012 / 21:00

2 respostas

2

Você está causando um erro neste pedaço do código de validação, em http_filters.c :

/* Protects against over/underflow, non-digit chars in the
 * string (excluding leading space) (the endstr checks)
 * and a negative number. */
if (apr_strtoff(&ctx->remaining, lenp, &endstr, 10)
    || endstr == lenp || *endstr || ctx->remaining < 0) {

    ctx->remaining = 0;
    ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, f->r,
      "Invalid Content-Length");

    return bail_out_on_error(ctx, f, HTTP_REQUEST_ENTITY_TOO_LARGE);
}

Assim, a remoção do limite do corpo da solicitação foi bem-sucedida. Parece que o cliente está em falta; Tortoise parece estar enviando dados inválidos no cabeçalho Content-Length . Existe alguma maneira que você pode capturar a solicitação HTTP completa (ele precisará ser http não criptografado, e você precisará de uma ferramenta de captura como wireshark) para inspecionar o que está enviando nesse cabeçalho?

    
por 13.01.2012 / 22:08
3

"O erro 413 Request Entity Too Large" no commit é mais do que um cliente problema que o do servidor.

Os clientes do Subversion usam a biblioteca neon para comunicação de rede por padrão. Esta biblioteca não suporta arquivos grandes de transmissão para o Subversion servidor corretamente.

Como solução alternativa, é possível alternar da neon para a biblioteca servf . Execute as etapas na máquina do cliente:

  1. Abra o arquivo %APPDATA%\Subversion\servers
  2. Localizar [global] seção
  3. Adicione a seguinte opção à seção [global] : http-library=serf
  4. Salve o arquivo dos servidores e tente confirmar novamente
por 16.01.2012 / 11:31