IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

NodeJS Discussion :

EADDRINUSE: aucun process dans netstat


Sujet :

NodeJS

  1. #1
    Membre habitué
    Inscrit en
    Mai 2008
    Messages
    317
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 317
    Points : 135
    Points
    135
    Par défaut EADDRINUSE: aucun process dans netstat
    Bonjour à tous,

    Et bien voila, j'ai un problème sur mon serveur node depuis peu:
    Avant toute chose, je tient à préciser que tout fonctionnais jusqu'a il y a peu, que des manips ont été effectuées, mais qu'aucune configuration du reseau n'a été touché depuis (donc, il ne s'agit en aucun cas d'un problème d'ouverture de port, par exemple, ceci a déjà été testé-approuvé).

    J'essaye de lancer mon processus nodejs via pm2 (qui, si j'ai bien compris, permet de relancer automatiquement le processus si celui-ci plante):

    Le processus ce lance, et tourne à priori sans erreur d'après la console pm2 list (qui m'indique le processus comme "online").

    Pourtant celui ci reste inaccessible: le serveur ne répond pas. (que ça soit en http, https, ou même via "telnet localhost 1337"...)
    Lorsque je regarde dans les logs de pm2, le fichier de sortie (server-out-4.log (processus pm2 n°4)) me dis:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    info: socket.io started
    warn: error raised: Error: bind EADDRINUSE
    D'après tout ce que j'ai vu sur le net, cela veux dire que le port utilisé par le serveur node est déjà en cours d'utilisation.
    Cependant, lorsque je regarde dans netstat:
    Et rien n'indique que ce port (le 1337) ne soit déjà en cours d'utilisation.

    Voila pour la petite histoire dans les grandes lignes.


    Voici quelques précisions:

    Le processus fonctionnait très bien il y a quelque jours, Mais nous avons demandé a notre hébergeur de mettre en place un monitoring sur le processus pour être avertis par mail en cas de plantage de celui-ci, ou en cas de redémarrage complet du serveur physique.
    La personne en charge de la tâche a donc désactivé le processus dans pm2 pour le relancer "normalement" (visible dans ps), car, à priori, plus simple à monitorer, je ne serais vous en dire plus.
    C'est depuis que le serveur est inaccessible.

    Nous avons donc annulé la demande de monitoring de ce processus, et avons tenté de relancer le processus node via pm2 à nouveau. Mais depuis, toujours la même erreur EADDRINUSE malgrès que le netstat semble nous dire le contraire.
    Afin de vérifier le code, j'ai dupliqué le serveur node, et simplement modifié le port d'écoute (par 1338, qui a été ouvert pour la preprod)
    Et là, aucun problème, le serveur fonctionne; donc la coquille ne vient apparemment pas du code.

    Mais pour des contraintes techniques ennuyeuses, je ne peux malheureusement pas utiliser mon serveur de production sur le port 1338,
    je cherche donc une solution pour libérer le port 1337 afin de pouvoir l'utiliser a nouveau pour mon serveur de prod.

    Si quelqu'un a une idée, je suis preneur, je patauge complètement là


    merci

  2. #2
    Membre habitué
    Inscrit en
    Mai 2008
    Messages
    317
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 317
    Points : 135
    Points
    135
    Par défaut
    Salut,

    Bon bah j'ai fini par réussir a trouver la solution:

    A priori c'était le deamon pm2 qui bloquait le port utilisé par le programme.
    Peut être a t-il été delete sans être stop correctement avant.

    Bref, cette commande réinitialise pm2 et libère les ports utilisés.
    Attention cependant, cette commande vide tout les processus pm2.
    Rien besoin de faire de particulier pour relancer pm2, vous pouvez relancer vos processus normalement (ex: pm2 start server.js).

    Je reste vraiment surpris sur le fait que netstat ne repère pas l'utilisation du port.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 17/05/2006, 14h23
  2. [VBA] aucun enregistrement dans un recordset
    Par gyzmo5 dans le forum Access
    Réponses: 2
    Dernier message: 07/02/2006, 12h33
  3. [C#] Comment lancer un process dans cmd.exe ?
    Par freddyboy dans le forum C#
    Réponses: 2
    Dernier message: 23/01/2006, 13h45
  4. Réponses: 1
    Dernier message: 06/04/2005, 16h09
  5. [Process]Execution de process dans un thread
    Par devjava dans le forum Concurrence et multi-thread
    Réponses: 5
    Dernier message: 18/06/2004, 11h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo