1 votos

¿Por qué se produce el error "Demasiados archivos abiertos" al abrir una página web con polipo instalado en OS X 10.11.4?

He instalado polipo-1.1.1 proxy de caché en mi OS X 10.11.4 con homebrew :

brew install polipo --with-large-chunks

A veces, la apertura de URLs ( este por ejemplo) falla con este mensaje de error:

504 Connect to apple.stackexchange.com:80 failed: Too many open files

The following error occurred while trying to access https://apple.stackexchange.com/questions/114514/can-the-default-permissions-on-dev-disk-be-changed:

504 Connect to apple.stackexchange.com:80 failed: Too many open files

Generated Sun, 22 May 2016 12:36:56 IRDT by Polipo on Hamids-MacBook-Pro.local:8123.

He creado ~/.polipo como archivo de configuración con socksParentProxy y socksProxyType sólo los parámetros.

El valor de ulimit -n es 4864 .

En /usr/local/var/cache/polipo Tengo 510 carpetas y el tamaño total de estas carpetas es 297 MB .

El número total de archivos que se abren con polipo con este comando es 219 :

lsof -p $(pgrep polipo) | wc -l

¿Por qué se produce este error y cómo puedo evitarlo?

¿Hay alguna configuración que se me haya pasado por alto?

1voto

Hamid Rohani Puntos 359

Esta es una respuesta rápida. Si usted sabe qué configuraciones causaron este problema, por favor publique su respuesta

No he averiguado por qué se produce este error, pero resuelvo el problema cada vez que aparece este error ejecutando este comando:

$ brew services restart polipo
Stopping `polipo`... (might take a while)
==> Successfully stopped `polipo` (label: homebrew.mxcl.polipo)
==> Successfully started `polipo` (label: homebrew.mxcl.polipo)

Después de reiniciar polipo ese error desaparece.

NOTA: Este comando debe ser ejecutado OUT de un tmux sesión. En una sesión tmux no funcionará:

$ brew services restart polipo
~/Library/LaunchAgents/homebrew.mxcl.polipo.plist: Operation not permitted
==> Successfully started `polipo` (label: homebrew.mxcl.polipo)

Si está ejecutando una sesión de este tipo, desconecte la sesión con control + b (o cualquier combinación de teclas de prefijo que establezca) y luego pulse d . Ahora ejecuta ese comando.

LA MEJOR ALTERNATIVA: Utilicé reattach-to-user-namespace para reiniciar el servicio polipo directamente desde la sesión tmux:

$ brew install reattach-to-user-namespace

entonces brew services funcionará.

ACTUALIZACIÓN: He comprobado que el tamaño de la caché de mi polipo local es suficientemente grande:

$ du -d0 -h /usr/local/var/cache/polipo
13.8G    /usr/local/var/cache/polipo

Existe una función de "purga" que se explica aquí :

El comportamiento de la bandera -x está controlado por tres variables de configuración. La variable diskCacheUnlinkTime especifica el tiempo durante el cual una entrada en el disco debe permanecer sin usar antes de ser elegible para su eliminación; por defecto es de 32 días.

Así que detuve el demonio polipo con los servicios brew:

$ brew services stop polipo
$ polipo -x
$ brew services start polipo

Ahora se reduce el tamaño de la caché local:

$ du -d0 -h /usr/local/var/cache/polipo
2.1G    /usr/local/var/cache/polipo

Y parece que el error ha desaparecido.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X