NB : Cette solution ne fonctionne/peut ne pas fonctionner avec les Mac OS récents (les commentaires indiquent>10.13 ?). Apparemment, des modifications ont été apportées pour des raisons de sécurité.
Conceptuellement, la solution s'applique - voici quelques sources de discussion :
- https://wilsonmar.github.io/maximum-limits/
- https://gist.github.com/tombigel/d503800a282fcadbee14b537735d202c
- https://superuser.com/questions/433746/is-there-a-fix-for-the-too-many-open-files-in-system-error-on-os-x-10-7 -1
--
J'ai eu le même problème (exécution d'une opération différente, mais toujours une erreur "Trop de fichiers ouverts"), et comme le dit Lese, il semble que la limite "maxfiles" soit atteinte sur la machine exécutant mongod.
Sur mac, mieux vaut vérifier les limites avec :
sudo launchctl limit
Cela vous donne :
<limit name> <soft limit> <hard limit>
cpu unlimited unlimited
filesize unlimited unlimited
data unlimited unlimited
stack 8388608 67104768
core 0 unlimited
rss unlimited unlimited
memlock unlimited unlimited
maxproc 709 1064
maxfiles 1024 2048
Ce que j'ai fait pour contourner le problème a été de fixer temporairement la limite plus élevée (la mienne était à l'origine quelque chose comme soft :256, hard :1000 ou quelque chose de bizarre comme ça) :
sudo launchctl limit maxfiles 1024 2048
Ensuite, relancez l'opération de requête/indexation et voyez si elle casse. Si ce n'est pas le cas, et pour conserver les limites les plus élevées (elles seront réinitialisées lorsque vous vous déconnecterez de la session shell sur laquelle vous les avez définies), créez un fichier '/etc/launchd.conf' avec la ligne suivante :
limit maxfiles 1024 2048
(ou ajoutez cette ligne à votre fichier launchd.conf existant, si vous en avez déjà un).
Cela définira le maxfile via launchctl sur chaque shell lors de la connexion.