Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Chroniqueur Actualités

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

    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
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités

  2. #2
    Expert éminent
    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
    Cette signature n'a pas pu être affichée car elle comporte des erreurs.