it-swarm.com.de

Node.js: Was ist ENOSPC-Fehler und wie kann ich ihn lösen?

Ich habe ein Problem mit Node.js und dem Hochladen von Dateien auf den Server. Zum Hochladen von Dateien auf den Server verwende ich dieses Plugin . Beim Hochladen der Datei auf den Server ist der Prozess Node.j abgestürzt und es wird ein Fehler angezeigt:

Fehler: ENOSPC.

Der Servercode wird nicht ausgeführt.

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1      7.9G  4.1G  3.5G  55% /
udev            288M  8.0K  288M   1% /dev
tmpfs           119M  168K  118M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            296M     0  296M   0% /run/shm
/dev/xvdf       9.9G  3.0G  6.5G  32% /vol
overflow        1.0M  1.0M     0 100% /tmp
309
Giffo

Führen Sie den folgenden Befehl aus, um ENOSPC zu vermeiden:

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

Fügen Sie für Arch Linux diese Zeile zu /etc/sysctl.d/99-sysctl.conf hinzu:

fs.inotify.max_user_watches=524288

Dann führen Sie aus:

sysctl --system

Dies bleibt auch nach einem Neustart bestehen. Technische Details Quelle

1146
Murali Krishna

ENOSPC bedeutet, dass auf dem Laufwerk kein Speicherplatz vorhanden ist.

Vielleicht ist /tmp voll? Sie können npm so konfigurieren, dass ein anderer temporärer Ordner verwendet wird, indem Sie npm config set tmp /path/to/some/other/dir festlegen, oder indem Sie alles aus dem Ordner /tmp löschen.

Source: npm 1.1.21 kann nicht schreiben, ENOSPC in npm's repo in github.

Hinweis: Ich habe mein Problem auf die in der obigen Quelle beschriebene Weise gelöst. Siehe jedoch Murali Krishnas Antwort unten, was umfassender ist.

72
Blu

Ich kann das nicht würdigen, aber @granate wies darauf hin, dass npm dedupe die Ursache (zu viele Dateien) und nicht das Symptom behebt.

Quelle: Grunzender Uhrenfehler - Warten ... Schwerwiegender Fehler: ENOSPC ansehen .

21
orbiteleven

Ein einfacher Weg, um mein Problem zu lösen, war:

npm cache clear

npm oder ein von ihm gesteuerter Prozess überwacht zu viele Dateien. Das Aktualisieren von max_user_watches auf dem Erstellungsknoten kann das Problem für immer beheben. Für Debian setzen Sie folgendes auf das Terminal:

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

Wenn Sie wissen möchten, wie Erhöhen Sie die Anzahl der inotifizierten Beobachter Klicken Sie nur auf den Link.

12
Danrley Willyan

Ein Neustart der Maschine löste das Problem für mich. Ich habe zuerst versucht, /tmp/ zu löschen, aber der Knoten hat sich immer noch beschwert.

8
Bjorn Reppen

Wenn Ihr /tmp-Mount auf einem Linux-Dateisystem als Überlauf angehängt ist (häufig mit einer Größe von 1 MB), liegt dies wahrscheinlich daran, dass Sie /tmp nicht als eigene Partition angeben und Ihr Root-Dateisystem gefüllt ist und /tmp wurde als Fallback neu montiert.

Um dies nach dem Löschen des Speicherplatzes zu beheben, heben Sie einfach die Bereitstellung des Fallbacks auf und es sollte an seinem ursprünglichen Punkt erneut bereitgestellt werden:

Sudo umount overflow
1
Pradeep Kumar

Ich habe mein Problem gelöst, indem ich alle Verfolgungssteuerungsprozesse beendet habe (Sie könnten es versuchen, wenn Sie GDM verwenden, offensichtlich nicht, wenn das Skript auf einem Server ausgeführt wird).

tracker-control -r

Mein Setup: Arch mit GNOME 3

1
Denys Vitali

Wenn Sie beim Ausführen des Befehls ember server auf diesen Fehler stoßen, rufen Sie das Verzeichnis rm -rf tmp auf. Führen Sie dann ember s erneut aus. Es hat mir geholfen.

0
Daniel Kmak

Für mich hatte ich die maximale Anzahl von Dateien erreicht, die ein Benutzer besitzen kann

Überprüfen Sie Ihre Zahlen mit quota -s und stellen Sie sicher, dass die Zahl unter den Dateien nicht zu nahe am Kontingent liegt

0
neric

Unter Ubuntu 18.04 habe ich einen Trick ausprobiert, mit dem ich die Dateiüberwachung nach ionic/node reaktiviert habe, und der funktioniert auch hier. Dies kann für Benutzer nützlich sein, die keinen Zugriff auf Systemkonfigurationsdateien haben.

CHOKIDAR_USEPOLLING=1 npm start
0