2 votos

No queda ningún descriptor de archivo en emacs

Estoy usando emacs en mi mac book pro con Big Sur 11.2.3

Y con frecuencia me encuentro con el problema de los descriptores de archivos

File watching not possible, no file descriptor left: 975

Después de varias horas de buscar el problema en Google, probé varios enfoques para actualizar las opciones de sysctl. Actualmente, mis opciones relevantes son:

kern.maxfiles: 10485760
kern.maxfilesperproc: 1048576
kern.maxproc: 4096
kern.maxfilesperproc: 1048576
kern.maxprocperuid: 8192

y sigo teniendo el mismo error. ulimit -a resultado:

-t: cpu time (seconds)              unlimited
-f: file size (blocks)              unlimited
-d: data seg size (kbytes)          unlimited
-s: stack size (kbytes)             8192
-c: core file size (blocks)         0
-v: address space (kbytes)          unlimited
-l: locked-in-memory size (kbytes)  unlimited
-u: processes                       2048
-n: file descriptors                1000000

1 votos

¿Usaste lsof para comprobar cuántos archivos están realmente abiertos? Si te da el error en emacs, ¿puedes seguir abriendo archivos en otras aplicaciones?

5voto

Michael Albinus Puntos 136

Véase este fragmento de código en src/kqueue.c:

  /* Check available file descriptors.  */
#ifdef HAVE_GETRLIMIT
  if (! getrlimit (RLIMIT_NOFILE, &rlim))
    maxfd = rlim.rlim_cur;
  else
#endif /* HAVE_GETRLIMIT  */
    maxfd = 256;

  /* We assume 50 file descriptors are sufficient for the rest of Emacs.  */
  ptrdiff_t watch_list_len = list_length (watch_list);
  if (maxfd - 50 < watch_list_len)
    xsignal2
      (Qfile_notify_error,
       build_string ("File watching not possible, no file descriptor left"),
       make_fixnum (watch_list_len));

Yo diría que has registrado 975 notificaciones de archivos en Emacs, lo que excede el número máximo de descriptores de archivos en tu sistema: (975 + 50) > 1024

No tengo ni idea de si se puede cambiar este límite superior. Sin embargo, creo que 975 solicitudes de notificación de archivos son, hmm, bastante altas.

1 votos

Al final, la cuestión fue lsp-mode El límite en sí mismo no parece ser incrementable. Ver este hilo de reddit para más información reddit.com/r/emacs/comments/mq2znn/no_file_descriptors_left

0 votos

Ya veo. Tal vez lsp-mode ¿se puede configurar de manera que vigile los directorios en lugar de los archivos individuales?

0 votos

Consulte esta entrada del blog: es.liujiacai.net/2022/09/03/emacs-maxopenfiles efectivamente recompilar Emacs puede levantar el límite si añades algunos CFLAGS

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