【问题标题】:Bad value on output port 'tcp_inet'输出端口“tcp_inet”的值错误
【发布时间】: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


【解决方案1】:

我收到了

输出端口“tcp_inet”的值错误

在我部署到 heroku 的 phoenix api 中。就我而言,我正在使用原子设置响应标头。一旦我将 atom 更改为二进制文件,一切就又开始正常工作了。

这很可能与正在修改您的标头的插件有关。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多