IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

npm : un bogue avec le code d'erreur « 418 I'm a teapot » a affecté le registre
Empêchant l'utilisation du client npm derrière un proxy

Le , par Bill Fassinou

316PARTAGES

11  0 
Un utilisateur a signalé sur GitHub hier que NPM, le gestionnaire de paquet de Node.js était inutilisable pour lui à cause d'une erreur inhabituelle. Rapidement, de nombreuses autres personnes, partout dans le monde entier, ont signalé le même problème. Lorsqu'on tentait d'installer ou de mettre à jour des paquets, une erreur s'affichait : « ERR! 418 I'm a teapot ». Le bogue n'a affecté que ceux qui sont derrière un serveur proxy. Toutefois, un grand nombre de développeurs ont été touchés, la plupart des entreprises fonctionnant derrière des serveurs proxy.


La cause de cet incident serait que certains serveurs proxy ajoutent le port aux requêtes vers le registre de paquets NPM. Les requêtes sont donc sous la forme de registry.npmjs.org:443 au lieu de registry.npmjs.org. Le port supplémentaire ajouté à la requête était mal pris en charge par le registre qui répondait une erreur 418.

Le message d'erreur « ERR! 418 I'm a teapot » n'est pas un code erreur http standard.

Cela remonte à un poisson d'avril datant de 1998 quand un groupe de développeurs avait proposé le protocole Hyper Text Coffee Pot Control Protocol (HTCPCP) à l'IETF qui l'a spécifié au RFC 2324. Dans ce protocole, il est indiqué que « toute tentative de faire du café avec une théière devrait donner lieu au code d'erreur : 418 je suis une théière ». Ces dernières années, de nombreux développeurs utilisent ce code d'erreur amusant pour les bogues d'origine inconnue.

L'erreur d'interprétation par le registre a été rapidement corrigée, mais on peut légitimement se poser des questions sur sa cause. Qu'est-ce qui a bien pu subitement causer ce problème ? Difficile de répondre à cette question, car si le code du client npm est ouvert, celui du registre ne l'est pas. Aucune communication à propos du problème sur les canaux habituels, à savoir la page web de statut du registre, ou les comptes Twitter officiels de @npmstatus et @npm_support.

Sources : reporting de l'erreur, IETF

Et vous ?

Avez-vous aussi été affectés par cette erreur ?
Prenez-vous des mesures particulières pour ne pas être affecté par les problèmes de registre ou d'accès au registre ?

Voir aussi

npm 5.7.0 retiré de la circulation à peine deux jours après sa sortie, la version 5.7.1 publiée pour corriger un problème critique
npm 6.0.0, le gestionnaire de paquets officiel de Node.js. passe en @latest, et se concentre désormais sur la sécurité
npm : une porte dérobée a été découverte dans le paquet getcookies qui a des dépendances imbriquées avec le paquet populaire Mailparser
Un incident opérationnel a provoqué la disparition d'une centaine de paquets npm, l'équipe derrière le gestionnaire de paquets de Node.js s'explique
npm : la version 6.0.1 du gestionnaire de paquets officiel de Node.js. passe en @latest, la commande npm audit est désormais fonctionnelle

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de Watilin
Expert éminent https://www.developpez.com
Le 31/05/2018 à 17:58
C’est toujours la galère quand il y a des proxys dans l’affaire. Voir What is the most accurate way to retrieve a user’s correct IP address in PHP?
Quant à l’erreur 418, c’est probablement un cas de figure que le/la dev a pris à la légère en se disant que ça n’arriverait jamais, et il/elle en a profité pour placer une blague que personne n’était censé découvrir
1  0