【发布时间】:2016-12-09 13:54:32
【问题描述】:
我正在使用 Phoenix 框架,它在下面运行 Cowboy。我偶尔会在我的日志中看到以下一对错误:
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
我能想到的所有搜索都指向向 gen_tcp:send() 发送元组的东西。但是当你在 Phoenix 的水平上写作时,这远远低于内容的层次。
服务器似乎一直在滚动,所以我并不为此感到恐慌,但我想深入了解它以阻止这些错误。有谁知道这是什么原因造成的?
【问题讨论】:
-
抱歉 - 我在 30 分钟内没有收到意外的否决票。将在其他地方投票以弥补代表。
-
Matt — 这是在开发模式下发生的吗?我会尝试更改
config/dev.exs中的端口号,看看是否会有所不同。 -
There is an issue on GitHub 关于在标题中使用原子时出现此错误。您是否在代码中的某处手动传递标头?
-
我们是在谈论 Phoenix 正在接收的传入请求中的标头,还是在谈论我的服务器正在进行的出站呼叫中的标头?此外,它在对 http_transport.close() 的调用中提到了 :undefined。那是它不喜欢的原子吗?它向我建议上游的错误。有些东西应该得到一个值,但得到了 :undefined 。但我不知道在哪里可以找到。
标签: erlang elixir phoenix-framework cowboy