4 votos

ath deja muchos enchufes abiertos

Esto parece de alguna manera similar a esta pregunta . Mientras diagnosticaba el comportamiento de algunas aplicaciones extrañas en mi MacBook Pro y los temidos errores de "demasiados archivos abiertos" que aparecían en el shell de la nada, llegué a descubrir que ath un componente ejecutable de AirTrafficHost.framework mantiene un gran número de enchufes abiertos en CLOSE_WAIT estado. El número tiende a aumentar sólo en el tiempo hasta que llega al límite del sistema para los descriptores de archivos abiertos. Yo uso mi MBP acoplado la mayor parte del tiempo y siempre está encendido, por lo que el límite se alcanza después de un par de días.

AirTrafficHost.framework es un marco privado de Apple y parece formar parte de la comunicación inalámbrica con los dispositivos iOS. Hay dos dispositivos iOS para los que he activado la sincronización en red: un iPad Pro y un iPhone. Parece que ath intenta hablar con ellos y en algún momento la conexión se termina, pero los sockets de red nunca se cierran y siguen acumulándose. lsof espectáculos:

ath  627 hristo   7u  IPv6 0x2e106590d5ff22b3  0t0  TCP [fe80:5::xxx]:49280->[fe80:5::yyy]:57461 (CLOSE_WAIT)
ath  627 hristo   8u  IPv6 0x2e106590d6aea413  0t0  TCP [fe80:5::xxx]:49300->[fe80:5::yyy]:57464 (CLOSE_WAIT)
ath  627 hristo  10u  IPv6 0x2e106590d7a65c93  0t0  TCP [fe80:5::xxx]:49529->[fe80:5::yyy]:57482 (CLOSE_WAIT)
ath  627 hristo  11u  IPv6 0x2e106590d4fe9a33  0t0  TCP [fe80:5::xxx]:49574->[fe80:5::yyy]:57486 (CLOSE_WAIT)
ath  627 hristo  13u  IPv6 0x2e106590d5feeb93  0t0  TCP [fe80:5::xxx]:49609->[fe80:5::yyy]:57490 (CLOSE_WAIT)
ath  627 hristo  14u  IPv6 0x2e106590d18e7b93  0t0  TCP [fe80:5::xxx]:49656->[fe80:5::yyy]:57494 (CLOSE_WAIT)
... many more ...

Ahora mismo, han pasado 5 horas desde el último reinicio y el número de descriptores de socket ya es de 162 en dos ath procesos (uno por cada dispositivo iOS, supongo) y creciendo:

$ lsof -n | grep ^ath | grep TCP | wc -l
    162

También parece que para cada desconexión, hay una entrada en /var/log/system.log :

Mar 17 01:15:23 MacBook-Pro AMPDeviceDiscoveryAgent[433]: Entered:_AMMuxedDeviceDisconnected, mux-device:159
Mar 17 01:15:23 MacBook-Pro AMPDeviceDiscoveryAgent[433]: Entered:__thr_AMMuxedDeviceDisconnected, mux-device:159
Mar 17 01:15:23 MacBook-Pro AMPDeviceDiscoveryAgent[433]: tid:7387 - Mux ID not found in mapping dictionary
Mar 17 01:15:23 MacBook-Pro AMPDeviceDiscoveryAgent[433]: tid:7387 - Can't handle disconnect with invalid ecid

El sistema operativo es un MacOS Catalina 10.15.3 totalmente actualizado.

¿Alguien más ve el mismo problema y sabe de alguna solución que no implique aumentar los límites del sistema o realizar una instalación limpia del SO? Ya tengo un launchd trabajo para aumentar kern.maxfiles y kern.maxfilesperproc pero eso no es realmente una solución, sólo pospone el problema. Y prefiero no desactivar la sincronización de red, porque me he quedado sin puertos USB.

1voto

Jose Chavez Puntos 645

En realidad, está bien aumentar los límites del sistema, por ejemplo, hasta 65536 archivos abiertos. 162 sockets durante 5 horas es un número relativamente bajo. No va a afectar al rendimiento del sistema de ninguna manera, y no utiliza ningún tipo de recursos significativos.

Normalmente, los enchufes acaban desapareciendo por sí solos después de un tiempo de espera. Sin embargo, en tu caso, aparecen en estado CLOSE_WAIT. Esto significa que el kernel está esperando a que la aplicación llame a close() en el descriptor del socket, y no desaparecerán automáticamente.

ath se supone que debe hacer precisamente eso, así que parece que o bien has dado con un error, o tienes algún tipo de desconfiguración grave que hace que ath se comportan de forma incorrecta.

Como medida temporal, puede conseguir que los enchufes se cierren cerrando el ath proceso. Puede ver el ID del proceso en la salida de lsof, y luego usar el kill para cerrarlo. Puedes volver a iniciarlo desde:

/System/Library/PrivateFrameworks/AirTrafficHost.framework/ath

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