【问题标题】:libcurl stuck in POLLIN timeoutslibcurl 陷入 POLLIN 超时
【发布时间】:2012-09-26 06:52:20
【问题描述】:

我的 php 代码中的 libcurl 似乎无限期地卡在 poll 调用中。当我对进程 ID 进行 strace 时,

[user@server ~]$ sudo strace -p 19559
Process 19559 attached - interrupt to quit
poll([{fd=7, events=POLLIN}], 1, 1000)  = 0 (Timeout)
poll([{fd=7, events=POLLIN}], 1, 0)     = 0 (Timeout)
poll([{fd=7, events=POLLIN}], 1, 1000)  = 0 (Timeout)
poll([{fd=7, events=POLLIN}], 1, 0)     = 0 (Timeout) 
poll([{fd=7, events=POLLIN}], 1, 1000)  = 0 (Timeout)
poll([{fd=7, events=POLLIN}], 1, 0)     = 0 (Timeout)
poll([{fd=7, events=POLLIN}], 1, 1000)  = 0 (Timeout)
poll([{fd=7, events=POLLIN}], 1, 0)     = 0 (Timeout)
poll([{fd=7, events=POLLIN}], 1, 1000)  = 0 (Timeout)

这种情况会无限期地进行。 fd 7 在 /proc/19559/fd 中显示为

lrwx------ 1 root root 64 Sep 19 19:44 7 -> socket:[335178801]

谁能告诉我为什么会这样。超时时我该怎么做才能使 libcurl 退出

【问题讨论】:

  • +1 用于使用strace...如果只有更多人这样做的话。

标签: php curl


【解决方案1】:

curl_setopt 选项 CURLOPT_CONNECTTIMEOUT 如果设置为非零值,将导致 curl 在超时时失败。

【讨论】:

    猜你喜欢
    • 2013-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 2012-05-16
    • 2017-01-24
    • 2017-07-20
    • 1970-01-01
    相关资源
    最近更新 更多