Editor: NPM-Überlastung verhindert Update von Visual Studio Code

Einer der Vorteile des freien Microsoft-Editors Visual Studio Code(öffnet im neuen Fenster) ist die Integration der Code-Vervollständigung und weiterer Hilfestellungen mittels Intellisense(öffnet im neuen Fenster) . Für Javascript geschieht dies mit Hilfe des Typescript-Sprachservers. In Version 1.7 von VS Code sollten die für Node.js-Pakete hierfür nötigen Informationen automatisch von NPM bezogen werden. Doch der NPM-Dienst war davon wohl so überfordert, dass Microsoft die Version 1.7 von VS Code zurückgezogen(öffnet im neuen Fenster) hat.
Der Grund dafür liegt im Zusammenspiel der Intellisense-Funktion mit der Datenbank von NPM, der sogenannten Registry. Denn um die Verwendung der Neuerung möglichst einfach zu gestalten, glich VS Code die lokal zur Entwicklung genutzten Node.js-Pakete automatisch mit der NPM-Registry ab, um dort die für Intellisense hinterlegten und benötigten Informationen abzufragen.
Serverüberlastung wegen nicht vorhandener Pakete
Allerdings stehen den mehreren Hunderttausenden bei NPM gelisteten Paketen nur wenige Tausend von Microsoft gelistete Pakete mit den benötigten Informationen gegenüber. Daraus ergibt sich offenbar das Problem, dass VS Code automatisch nach Informationspaketen sucht, die jedoch nicht existieren, so dass die Anfrage mit einem 404-HTTP-Fehlercode beantwortet wird. Derartige Antworten werden von CDNs aber nicht im Cache vorgehalten, weshalb die NPM-Server mit einer unerwartet starken Auslastung konfrontiert waren, wie der NPM-Technik-Chef schreibt(öffnet im neuen Fenster) .
Microsoft selbst schreibt dazu salopp: "Die Funktion war so großartig, dass wir damit begonnen haben, den NPM-Dienst zu überladen. Die kurzfristig einzig richtige Entscheidung war, die Veröffentlichung zurückzunehmen" . Nutzer, die Version 1.7 als Auto-Update bekommen haben, haben deshalb ebenfalls per Auto-Update wieder die vorherige Version 1.6.1 von VS Code eingespielt bekommen.
Nachtrag vom 4. November 2016, 10:25 Uhr
Microsoft hat Version 1.7.1 von VS Code veröffentlicht(öffnet im neuen Fenster) , welche die problembehaftete Funktion nicht enthält, und erläutert die Geschehnisse(öffnet im neuen Fenster) in einem Blog-Posting. Das Entwicklerteam will aber weiter an einer Lösung arbeiten und die Funktion künftig doch noch bereitstellen können.



