2011-02-12 13 views
52

En ocasiones recibo un error "413 Entidad de solicitud demasiado grande" al actualizar un repositorio svn. Una vez que recibo este error, continúa cada vez que intento actualizar la copia de trabajo local. Un nuevo pago resolverá el problema, pero es muy inconveniente. El proyecto tiene más de 30 GB y el repositorio SVN está alojado externamente.¿Qué causa el error svn 413 La entidad de solicitud es demasiado grande?

Esto ha ocurrido en el pasado en varias computadoras diferentes, incluidas las máquinas de desarrollo de Windows, y nuestro servidor de compilación de Linux.

La mayor parte de lo que he encontrado con respecto a este problema se refiere a archivos individuales grandes (más de 2 GB). Este no es el caso aquí, ya que los archivos más grandes son aprox. 50-60 MB.

¿Alguien más se ha encontrado con esto antes y/o sabe la causa/solución a esto?

Respuesta

47

intenta agregar las siguientes directivas de configuración en el archivo de configuración de Apache:

LimitXMLRequestBody 8000000 
LimitRequestBody 0 
+0

Oh muchas gracias. He tenido este problema exacto también. Tu respuesta lo resolvió cuidadosamente. –

+0

Eso funcionó de maravilla, pero ¿sabes cuál es la lógica detrás de esto? –

+0

@RobForrest Por defecto, tamaño de cuerpo de la solicitud de límite de servidor Apache para evitar ataques DoS. Subversion informa el estado de trabajo al servidor utilizando el cuerpo de solicitud XML y luego el servidor envía actualizaciones a esta copia de trabajo. El límite predeterminado es 1mb, lo cual está bien para la mayoría de las configuraciones, pero a veces para grandes copias de trabajo no es suficiente. –

29

no tengo acceso a mi servidor de recompra (logró, y su el fin de semana). Entonces, lo que encontré fue que podía solucionar este problema haciendo una actualización de svn en subdirectorios hasta que uno no funcionara. Luego descendí a este directorio hasta que dejé de obtener el error 413. Entonces podría hacer una actualización en niveles más altos. podría no funcionar para todos, pero podría ayudar a conseguir a través de una emergencia

+6

Esa es una buena sugerencia. Puedes comenzar en el nivel superior haciendo "svn up *" - si eso falla en un subdirector simplemente decide entrar y repetir. Si tiene un subdirectorio con muchas carpetas, simplemente haciendo "svn up *" puede ser suficiente para solucionar el problema. – Jan

+0

Arr ...la razón por la que intento que cambiemos a Git. Menos de este divertido negocio. –

+0

Esto funcionó para mí – Sam

1

Además, si ejecuta mod_security, tenga en cuenta el control de su entorno SecRequestBodyLimit. El mío estaba demasiado bajo y estaba causando el problema.

2

Tuve este problema recientemente con cualquier archivo de más de 10MB. Resulta que olvidé que estoy procesando el servidor svn/apache con nginx. Cambiando client_max_body_size en nginx.conf solucionó el problema. Dejé LimitXMLRequestBody y LimitRequestBody en el servidor Apache en sus valores predeterminados.

4

Hicimos una escritura del golpe corto para recorrer los subdirectorios, por la respuesta de MDH:

for dir in *; do 
    [[ -e $dir ]] || continue 
    echo "Updating $dir" 
    svn up $dir 
done 
svn up 
+0

No desea analizar ls: http://mywiki.wooledge.org/ParsingLs En su lugar, debe considerar usar find o bash globbing. – javaJake

+0

Punto justo, gracias. Actualizado para usar bash en su lugar. También ahora inicia sesión en el directorio que falló, por lo que se puede tratar con – lucrussell

+1

. No sé por qué esto se rechaza. Si no tiene acceso al servidor, esto es lo único que puede hacer para evitar el problema. – Martin

Cuestiones relacionadas