2016-08-03 1 views
2

J'utilise le framework Phoenix, qui fonctionne sous Cowboy. Je vois de temps en temps la paire suivante d'erreurs dans mon journal:Mauvaise valeur sur le port de sortie 'tcp_inet'

Bad value on output port 'tcp_inet' 

GenServer #PID<0.8423.1> terminating 
** (FunctionClauseError) no function clause matching in :http_transport.close/2 
(inets) http_transport.erl:346: :http_transport.close(:undefined, #Port<0.18079778>) 
(stdlib) gen_server.erl:643: :gen_server.try_terminate/3 
(stdlib) gen_server.erl:809: :gen_server.terminate/7 
(stdlib) proc_lib.erl:240: :proc_lib.init_p_do_apply/3 

Toute la recherche que je pouvais penser de points à quelque chose d'envoi à un tuple gen_tcp: envoyer(). Mais c'est beaucoup plus bas quand on écrit au niveau de Phoenix.

Le serveur semble continuer à tourner, donc je ne panique pas, mais j'aimerais aller au fond des choses pour arrêter ces erreurs. Quelqu'un sait ce que cela causerait?

+0

Désolé - downvote accidentel que je n'ai pas attrapé pendant 30 minutes. Will upvote ailleurs pour constituer le représentant. –

+0

Matt - cela se passe-t-il en mode développement? Je voudrais essayer de changer le numéro de port dans 'config/dev.exs' pour voir si cela fait une différence. – Svilen

+0

[Il y a un problème sur GitHub] (https://github.com/ninenines/cowboy/issues/139) concernant l'obtention de cette erreur lors de l'utilisation d'atomes dans les en-têtes. Est-ce que vous passez les en-têtes manuellement quelque part dans votre code? – tkowal

Répondre

0

Je recevais

valeur Bad sur le port de sortie 'tcp_inet'

Dans mon api phénix que j'avais déployé à Heroku. Dans mon cas, je définissais les en-têtes de réponse avec un atome. Une fois que j'ai changé l'atome en un binaire, tout a recommencé à fonctionner correctement. Probablement, cela peut avoir quelque chose à voir avec une prise qui modifie vos en-têtes.