2 votes

Aucun descripteur de fichier restant dans emacs

Je suis en train d'utiliser emacs sur mon mac book pro avec Big Sur 11.2.3

Et je rencontre fréquemment le problème des descripteurs de fichiers

Impossible de surveiller les fichiers, aucun descripteur de fichier restant : 975

Après plusieurs heures de recherche sur le problème, j'ai essayé plusieurs approches de mise à jour des options sysctl. actuellement, mes options pertinentes sont :

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

et j'obtiens toujours la même erreur. ulimit -a résultat:

-t: temps CPU (secondes) illimité
-f: taille de fichier (blocs) illimité
-d: taille du segment de données (ko) illimité
-s: taille de la pile (ko) 8192
-c: taille du fichier core (blocs) 0
-v: espace d'adressage (ko) illimité
-l: taille verrouillée en mémoire (ko) illimité
-u: processus 2048
-n: descripteurs de fichiers 1000000

1 votes

Avez-vous utilisé lsof pour vérifier combien de fichiers sont réellement ouverts? Si vous obtenez une erreur dans emacs, pouvez-vous toujours ouvrir des fichiers dans d'autres applications?

5voto

Michael Albinus Points 156

Consultez cet extrait de code dans src/kqueue.c:

  /* Vérifier les descripteurs de fichiers disponibles. */
#ifdef HAVE_GETRLIMIT
  if (! getrlimit (RLIMIT_NOFILE, &rlim))
    maxfd = rlim.rlim_cur;
  else
#endif /* HAVE_GETRLIMIT  */
    maxfd = 256;

  /* Nous supposons que 50 descripteurs de fichiers sont suffisants pour le reste d'Emacs. */
  ptrdiff_t watch_list_len = list_length (watch_list);
  if (maxfd - 50 < watch_list_len)
    xsignal2
      (Qfile_notify_error,
       build_string ("Surveillance des fichiers non possible, aucun descripteur de fichier disponible"),
       make_fixnum (watch_list_len));

Je dirais que vous avez enregistré 975 notifications de fichiers dans Emacs, ce qui dépasse le nombre maximum de descripteurs de fichiers sur votre système : (975 + 50) > 1024

Je ne sais pas si vous pouvez modifier cette limite supérieure. Cependant, je crois que 975 demandes de notification de fichiers sont, euh, assez élevées.

1 votes

À la fin, le problème était lsp-mode créant trop de surveillances de fichiers. La limite en elle-même ne semble pas être augmentable. Consultez ce fil Reddit pour plus d'informations reddit.com/r/emacs/comments/mq2znn/no_file_descriptors_left

0 votes

Je vois. Peut-être que lsp-mode est configurable de telle manière qu'il surveille des répertoires au lieu de fichiers individuels ?

0 votes

Découvrez cet article de blog : en.liujiacai.net/2022/09/03/emacs-maxopenfiles recompiler efficacement Emacs peut lever la limite si vous ajoutez des CFLAGS

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X