Nodemon: Une erreur "Erreur : regarder ENOSPC"

Créé le 20 oct. 2013  ·  56Commentaires  ·  Source: remy/nodemon

20 Oct 16:40:37 - [nodemon] v0.7.10
20 Oct 16:40:37 - [nodemon] to restart at any time, enter `rs`
20 Oct 16:40:37 - [nodemon] watching: /my/proyect/server
20 Oct 16:40:37 - [nodemon] exception in nodemon killing node
Error: watch ENOSPC
    at errnoException (fs.js:1019:11)
    at FSWatcher.start (fs.js:1051:11)
    at Object.fs.watch (fs.js:1076:11)
    at Object.watchFileChecker.check (/usr/lib/node_modules/nodemon/nodemon.js:160:6)
    at ready (/usr/lib/node_modules/nodemon/nodemon.js:49:22)
    at /usr/lib/node_modules/nodemon/nodemon.js:63:11
    at ChildProcess.exithandler (child_process.js:641:7)
    at ChildProcess.EventEmitter.emit (events.js:98:17)
    at maybeClose (child_process.js:735:16)
    at Socket.<anonymous> (child_process.js:948:11)
20 Oct 16:40:37 - [nodemon] reading ignore list
20 Oct 16:40:37 - [nodemon] exception in nodemon killing node
Error: watch ENOSPC
    at errnoException (fs.js:1019:11)
    at FSWatcher.start (fs.js:1051:11)
    at fs.watch (fs.js:1076:11)
    at checkTimer (/usr/lib/node_modules/nodemon/nodemon.js:467:27)
    at Timer.listOnTimeout [as ontimeout] (timers.js:110:15)

Commentaire le plus utile

Le système a une limite au nombre de fichiers pouvant être consultés par un utilisateur. Vous pouvez manquer de montres assez rapidement si Grunt fonctionne avec d'autres programmes comme Dropbox.

La publication suggère de l'exécuter pour augmenter le nombre de montres disponibles.

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

Tous les 56 commentaires

Version de Node ?

En outre, pouvez-vous fournir un script de scénario de test simple que vous utilisez (pour tester).

utilisez le nœud 0.10.21. Avec n'importe quel script, génère une erreur.

Est-ce le même problème que le n°144 ? Je ne peux pas reproduire cela sur mon mac (bien que je n'aie pas demandé quel système d'exploitation vous aviez, mais j'ai supposé le type * nix en fonction du chemin dans votre pâte ci-dessus).

Pas les mêmes, sont différents ici exécute un seul processus. Dans l'autre fonctionne sur plusieurs processus, non cloud

J'ai rencontré cette erreur aujourd'hui avec plusieurs applications (express, restify).

NodeJS : v0.10.21
Version ElementaryOS : 0.2 "Luna" (64 bits)
Construit sur : Ubuntu 12.04 ( « Précis »)
Noyau 3.5.0-43-générique

11 Nov 17:32:38 - [nodemon] v0.7.10
11 Nov 17:32:38 - [nodemon] to restart at any time, enter `rs`
...
11 Nov 17:32:38 - [nodemon] exception in nodemon killing node
Error: watch ENOSPC
    at errnoException (fs.js:1019:11)
    at FSWatcher.start (fs.js:1051:11)
    at Object.fs.watch (fs.js:1076:11)
    at Object.watchFileChecker.check (/home/.../node_modules/nodemon/nodemon.js:160:6)
    at ready (/home/.../node_modules/nodemon/nodemon.js:49:22)
    at /home/.../node_modules/nodemon/nodemon.js:63:11
    at ChildProcess.exithandler (child_process.js:641:7)
    at ChildProcess.EventEmitter.emit (events.js:98:17)
    at maybeClose (child_process.js:735:16)
    at Socket.<anonymous> (child_process.js:948:11)

reproduire:

npm install nodemon
./node_modules/.bin/nodemon app.js

app.js (depuis http://nodejs.org/)

var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
}).listen(1337, '127.0.0.1');
console.log('Server running at http://127.0.0.1:1337/');

J'ai la même erreur avec CoffeeScript --watch ./node_modules/.bin/coffee --watch app/

/home/.../node_modules/coffee-script/lib/coffee-script/command.js:334
        throw e;
              ^
Error: watch ENOSPC
    at errnoException (fs.js:1019:11)
    at FSWatcher.start (fs.js:1051:11)
    at Object.fs.watch (fs.js:1076:11)
    at watchDir (/home/.../node_modules/coffee-script/lib/coffee-script/command.js:299:27)
    at /home/.../node_modules/coffee-script/lib/coffee-script/command.js:102:11
    at Object.oncomplete (fs.js:107:15)

J'ai eu la même erreur avec un projet compound.js utilisant coffeescript sur Ubuntu 13.10 avec le nœud 0.10.21

$ nodemon server.coffee

27 Nov 21:40:14 - [nodemon] v0.7.10
27 Nov 21:40:14 - [nodemon] to restart at any time, enter `rs`
27 Nov 21:40:14 - [nodemon] watching: /home/chok/work/edf/bluetic/src
27 Nov 21:40:14 - [nodemon] exception in nodemon killing node
Error: watch ENOSPC
    at errnoException (fs.js:1019:11)
    at FSWatcher.start (fs.js:1051:11)
    at Object.fs.watch (fs.js:1076:11)
    at Object.watchFileChecker.check (/usr/local/lib/node_modules/nodemon/nodemon.js:160:6)
    at ready (/usr/local/lib/node_modules/nodemon/nodemon.js:49:22)
    at /usr/local/lib/node_modules/nodemon/nodemon.js:63:11
    at ChildProcess.exithandler (child_process.js:641:7)
    at ChildProcess.EventEmitter.emit (events.js:98:17)
    at maybeClose (child_process.js:735:16)
    at Socket.<anonymous> (child_process.js:948:11)

Quelqu'un peut-il s'y essayer avec la version de développement de nodemon ? J'ai fait beaucoup de changements et j'essaie de concentrer mes efforts pour m'assurer que la nouvelle version résout tous ces problèmes.

Vous pouvez installer en utilisant npm install -g nodemon@dev

Fonctionne pour moi maintenant je ne sais pas pourquoi. Utilisation de la dernière version stable de nodemon npm. J'ai également eu le même problème avec coffeescript --watch et cela fonctionne aussi maintenant. Pas de mise à jour de nœud, juste des modules d'installation npm et des mises à jour de distribution.

J'ai la même erreur mais le processus s'arrête :

$ nodemon server.coffee 
3 Dec 15:32:42 - [nodemon] v0.9.10
[nodemon] exception in nodemon killing node
[nodemon] Error: watch ENOSPC
    at errnoException (fs.js:1019:11)
    at FSWatcher.start (fs.js:1051:11)
    at Object.fs.watch (fs.js:1076:11)
    at Function.check (/usr/local/lib/node_modules/nodemon/lib/config/watchable.js:34:6)
    at alternativeCheck (/usr/local/lib/node_modules/nodemon/lib/config/checkWatchSupport.js:18:15)
    at /usr/local/lib/node_modules/nodemon/lib/config/checkWatchSupport.js:36:11
    at ChildProcess.exithandler (child_process.js:641:7)
    at ChildProcess.EventEmitter.emit (events.js:98:17)
    at maybeClose (child_process.js:735:16)
    at Socket.<anonymous> (child_process.js:948:11)

@chok pouvez-vous exécuter ce qui suit (et coller le résultat) pour moi dans le même répertoire que vous exécutez nodemon :

find . | wc

J'essaie d'avoir une idée de ce qui cause réellement ce problème.

Voici le résultat :

$ find . | wc
   7677    7677  542965

D'accord, ce sont 7600 fichiers qu'il essaie également de lier aux montres.

Pouvez-vous exécuter tree et mettre le résultat dans http://pastie.org/ (seulement parce que ça va être énorme).

Pastie a dit que c'est trop gros (plus de 64ko) et après tout je n'aime pas le texte du bas :p (Tous tes pâtes nous appartiennent. ). J'ai supprimé certaines pièces spécifiques à mes projets. Soit dit en passant, la plupart des fichiers sont, bien sûr, situés dans node_modules.

Vous pouvez le trouver sur gist : https://gist.github.com/chok/7774318

D'accord, je pense qu'il s'agit d'un problème entièrement lié au nombre de fichiers surveillés (puisque vous devez vous lier à chaque fichier individuel). Je pensais ignorer les répertoires node_modules et .git par défaut, mais pouvez-vous essayer de le faire avec la commande ignore (en supposant que vous exécutez toujours 0.9.x):

nodemon -i node_modules

Bien sûr, cela ne devrait pas être fait à chaque fois, j'essaie juste de confirmer que c'est bien le problème.

ça ne marche pas :(

$ nodemon -i node_modules/ server.coffee 
3 Dec 20:52:32 - [nodemon] v0.9.10
[nodemon] exception in nodemon killing node
[nodemon] Error: watch ENOSPC
    at errnoException (fs.js:1019:11)
    at FSWatcher.start (fs.js:1051:11)
    at Object.fs.watch (fs.js:1076:11)
    at Function.check (/usr/local/lib/node_modules/nodemon/lib/config/watchable.js:34:6)
    at alternativeCheck (/usr/local/lib/node_modules/nodemon/lib/config/checkWatchSupport.js:18:15)
    at /usr/local/lib/node_modules/nodemon/lib/config/checkWatchSupport.js:36:11
    at ChildProcess.exithandler (child_process.js:641:7)
    at ChildProcess.EventEmitter.emit (events.js:98:17)
    at maybeClose (child_process.js:735:16)
    at Socket.<anonymous> (child_process.js:948:11)

j'essaye aussi :

$ nodemon -w app/* server.coffee 
3 Dec 20:53:32 - [nodemon] v0.9.10
[nodemon] exception in nodemon killing node
[nodemon] Error: watch ENOSPC
    at errnoException (fs.js:1019:11)
    at FSWatcher.start (fs.js:1051:11)
    at Object.fs.watch (fs.js:1076:11)
    at Function.check (/usr/local/lib/node_modules/nodemon/lib/config/watchable.js:34:6)
    at alternativeCheck (/usr/local/lib/node_modules/nodemon/lib/config/checkWatchSupport.js:18:15)
    at /usr/local/lib/node_modules/nodemon/lib/config/checkWatchSupport.js:36:11
    at ChildProcess.exithandler (child_process.js:641:7)
    at ChildProcess.EventEmitter.emit (events.js:98:17)
    at maybeClose (child_process.js:735:16)
    at Socket.<anonymous> (child_process.js:948:11)

Pouvez-vous exécuter exactement la même commande, mais ajoutez --dump et envoyez-moi la réponse (lorsque vous faites la version ignorée).

Il n'y a pas de changement :

$ nodemon -i node_modules/ server.coffee  --dump
3 Dec 21:17:18 - [nodemon] v0.9.10
[nodemon] exception in nodemon killing node
[nodemon] Error: watch ENOSPC
    at errnoException (fs.js:1019:11)
    at FSWatcher.start (fs.js:1051:11)
    at Object.fs.watch (fs.js:1076:11)
    at Function.check (/usr/local/lib/node_modules/nodemon/lib/config/watchable.js:34:6)
    at alternativeCheck (/usr/local/lib/node_modules/nodemon/lib/config/checkWatchSupport.js:18:15)
    at /usr/local/lib/node_modules/nodemon/lib/config/checkWatchSupport.js:36:11
    at ChildProcess.exithandler (child_process.js:641:7)
    at ChildProcess.EventEmitter.emit (events.js:98:17)
    at maybeClose (child_process.js:735:16)
    at Socket.<anonymous> (child_process.js:948:11)

Hmm, désolé, pouvez-vous coller --dump avant votre script, cela devrait me donner un dump de la configuration.

J'ai déjà essayé les deux :(

$ nodemon -i node_modules/ --dump server.coffee 
3 Dec 21:25:35 - [nodemon] v0.9.10
[nodemon] exception in nodemon killing node
[nodemon] Error: watch ENOSPC
    at errnoException (fs.js:1019:11)
    at FSWatcher.start (fs.js:1051:11)
    at Object.fs.watch (fs.js:1076:11)
    at Function.check (/usr/local/lib/node_modules/nodemon/lib/config/watchable.js:34:6)
    at alternativeCheck (/usr/local/lib/node_modules/nodemon/lib/config/checkWatchSupport.js:18:15)
    at /usr/local/lib/node_modules/nodemon/lib/config/checkWatchSupport.js:36:11
    at ChildProcess.exithandler (child_process.js:641:7)
    at ChildProcess.EventEmitter.emit (events.js:98:17)
    at maybeClose (child_process.js:735:16)
    at Socket.<anonymous> (child_process.js:948:11)

Salut. Je ne veux pas paraître obtus, mais lorsque j'ai rencontré cette erreur, je l'ai corrigée en augmentant max_user_watches sur mon système. J'ai regardé ce fil pour voir s'il se passait autre chose.

@taylorjbrennan oui, je sais que cela résoudra le problème, mais bien que max_user_watches io.

@remy super, j'ai hâte de le voir.

@chok pouvez-vous réessayer avec [email protected] - nodemon ignore désormais .git et node_modules/**/node_modules par défaut, donc le nombre de montres devrait être considérablement inférieur (je rouvrirai si c'est toujours un problème) .

Je vais également essayer de détecter l'erreur watch ENOSPC et faire écho à un message sur l'augmentation de max_user_watches . Pas idéal, mais rien de plus que je puisse vraiment faire.

Je n'ai plus ce message :) mais maintenant j'ai le problème expliqué en #245

Je viens d'avoir ce problème et c'était un problème de trop de fichiers ouverts sur le système. (Sublime Text aime ouvrir beaucoup de fichiers si vous le permettez)

Dès que j'ouvre un répertoire avec de nombreux fichiers dans Sublime 2 nodemon ne fonctionne plus et crache l'erreur référencée. Je n'ai pu contourner cela qu'en n'utilisant pas la fonction "Ouvrir le dossier" de Sublimes. Merci pour l'astuce @eyce9000.

@timtips même avec sublimetext3 et nodemon v1.3.1

@baio pouvez-vous vérifier cela. Il n'y a pas de [email protected] - il y a une pré-version @1.3.0-1 - mais qui n'est pas en production dans npm (pouvez-vous également confirmer votre version npm) ?

Il peut fermer ce bug? En tant que nouvelles versions de nodemon et nodejs, ce problème a été résolu, bien que je ne puisse pas dire que cela soit entièrement résolu. On peut dire que cela ne se produit plus fréquemment.

@alejonext pouvez-vous essayer avec npm install -g nodemon@dev - J'ai apporté pas mal de modifications qui ne sont pas dans 1.2.1.

L'erreur signifie en fait "Erreur NO disk SPaCe" - mais je pense qu'elle est liée au nombre de fichiers surveillés, qui devrait être réduit en modifiant le code de surveillance...

@remy Fonctionne parfaitement :) merci pour votre travail !!!!

Doux. Il y aura probablement une version stable de 1.3.0 à npm cette semaine avec un tas de corrections de bugs également.

@remy étonné du temps de réponse. Merci!

@rémy
exception dans nodemon kill node
Erreur : regardez ENOSPC
à errnoException (fs.js:1030:11)
à FSWatcher.start (fs.js:1062:11)
à Object.fs.watch (fs.js:1087:11)

nœud v0.10.33
OS : Linux ubuntu

J'ai corrigé cela avec cette commande https://github.com/ember-cli/ember-cli/issues/1240#issuecomment -47855317

mais la mise à jour du package est-elle recommandée ?

Je me demande pourquoi c'est devenu comme ça en premier lieu. J'utilise le gestionnaire de versions de nœud avec
nœud 0.12.0
npm 2.7.0
braise 0.2.0

Le système a une limite au nombre de fichiers pouvant être consultés par un utilisateur. Vous pouvez manquer de montres assez rapidement si Grunt fonctionne avec d'autres programmes comme Dropbox.

La publication suggère de l'exécuter pour augmenter le nombre de montres disponibles.

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

J'ai ce problème avec "nodemon": "^1.4.1" et "node": "0.12.7" :déçu:

Veuillez essayer avec #625

Le Mar 8 Sep 2015 16:20 Wesley Queiroz [email protected] a écrit :

J'ai ce problème avec "nodemon": "^1.4.1" et "node": "0.12.7" [image :
:déçu:]

-
Répondez directement à cet e-mail ou consultez-le sur GitHub
https://github.com/remy/nodemon/issues/214#issuecomment -138598438.

J'ai essayé avec alpha mais j'obtiens toujours ENOSPC ...
Mon sysctl.conf a fs.inotify.max_user_watches=10000 .
Si je le change en 524288 cela fonctionne, mais dans mon "dev-server", je ne pourrai pas le changer.

Combien de fichiers essayez-vous de regarder ? c'est-à-dire combien sont sous votre
directeur de travail?

Le mardi 8 septembre 2015 à 17h37, Wesley Queiroz [email protected] a écrit :

J'ai essayé avec alpha mais j'obtiens toujours ENOSPC...
Mon sysctl.conf a fs.inotify.max_user_watches=10000.
Si je le change en 524288 cela fonctionne, mais dans mon "dev-server", je ne pourrai pas
pour le changer.

-
Répondez directement à cet e-mail ou consultez-le sur GitHub
https://github.com/remy/nodemon/issues/214#issuecomment-138624285 .

Pas beaucoup, 30 au max.
Mais je pense que nodemon essaie de regarder node_modules à la racine du projet.
Vous trouverez ci-dessous la configuration transmise à nodemon (je l'utilise comme module de nœud):

nodemon({
    script: 'server/server.js',
    watch: [
        'server/',
        'common/'
    ],
    ext: 'js json coffee'
});

le dossier du serveur a :
7 limes à café
5 fichiers json
et le dossier commun n'a qu'un seul fichier json...

Ouais... alors lancez find . | wc -l et qu'est-ce que ce nombre vous donne ? Bien qu'il soit censé ignorer node_modules par défaut, il est possible qu'il ne soit pas pris en compte.

Exécuter find . | wc -l à la racine du projet me donne 18266 mais quand je supprime node_modules et bower_components donne que 320 .

D'accord, donc je pense que la montre _est_ incluant le node_modules - cela fait partie du refactor #625 et doit être corrigé.

@wesleycoder pouvez-vous essayer avec le dernier nodemon@dev (ce devrait être la version 1.5.0-alpha4 ) et exécuter avec DEBUG=nodemon <your normal nodemon command> puis coller la sortie complète.

Ouah !
Ça marche!
Pas d'erreurs !
Merci!

Cela peut être dû au fait que votre système ne permet pas à l'utilisateur de regarder des fichiers. vous pouvez utiliser la ligne de commande suivante dans Ubuntu
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
ou essayez
npm dedupe

Réf à ce stackoverflow

@ankibalyan @uttampanara

Ça marche !
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

fonctionne pour moi aussi !
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

Pareil ici ! :+1:
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

Exécutez cette commande

echo fs.inotify.max_user_watches=582222 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

Une autre solution possible est d'ajouter un fichier de configuration nodemon.json dans votre dossier racine et de spécifier les modèles d'ignorer par exemple :
nodemon.json

{
  "ignore": [
    "*.test.js", 
    "dist/*"
  ]
}
  • Notez que par défaut .git , node_modules , bower_components , .nyc_output , coverage et .sass-cache sont ignorés donc vous ne pas besoin de les ajouter à votre configuration.

L'astuce de notification fs ne semble pas fonctionner sur un conteneur docker... du moins pas Alpine 3.8, j'obtiens la même erreur ENOSPC. Cela devient de plus en plus important à mesure que les outils deviennent obsolètes et que nous devons toujours maintenir les produits hérités

Cette page vous a été utile?
0 / 5 - 0 notes