【问题标题】:Azure PHP SDK throws Fatal Exception with Socket errorAzure PHP SDK 抛出带有套接字错误的致命异常
【发布时间】:2015-08-22 08:37:32
【问题描述】:

我的 PHP 脚本从我的数据库中读取数据并将消息发送到队列,以便工作角色(以及其他 LAMP 机器)可以提取它们并并行工作。

但是,我的脚本通常以致命错误结束,并在我的 apache 服务器上的 error_log 中显示以下消息。此错误在发送方。

PHP Notice:  fwrite(): send of 414 bytes failed with errno=32 
Broken pipe in /home/azureuser/pear/share/pear/HTTP/Request2/SocketWrapper.php on line 202

PHP Fatal error:  Uncaught HTTP_Request2_MessageException: 
Error writing request in /home/azureuser/pear/share/pear/HTTP/Request2/Adapter/Socket.php 
on line 130

Exception trace

HTTP_Request2_SocketWrapper->write('POST /proxy/mess…')
/home/azureuser/pear/share/pear/HTTP/Request2/Adapter/Socket.php:130

HTTP_Request2_Adapter_Socket->sendRequest(Object(HTTP_Request2))
/home/azureuser/pear/share/pear/HTTP/Request2.php:93 

in /home/azureuser/pear/share/pear/HTTP/Request2/SocketWrapper.php on line 206

在我看来,套接字由于某种原因引发了一个未处理的异常,从而使脚本崩溃。如果您同意,您是否建议修复 SDK 是个好主意?

【问题讨论】:

    标签: php azure azure-storage-queues


    【解决方案1】:

    第一次通过时非常迅速地对此进行了调查,但似乎:

    fwrite(): send of 414 bytes failed with errno=32 
    

    指的是掉线的套接字,这可能有几个原因:

    • 网站进入冷态(始终开启)
    • 套接字保持打开的时间过长并被 LB 终止
    • 发生了意外,套接字崩溃(认为异常写入队列)

    您是否能够查看 FREB 日志或在支持门户 (https://[site-name].scm.azurewebsites.net/Support) 中运行 PHP 进程报告来诊断套接字被丢弃的原因?

    【讨论】:

    • 谢谢科里。我将对此进行调查,看看是否可以解决。它是一个运行 Linux 的虚拟机,所以我会仔细检查我的日志,看看我是否遗漏了什么。如果我需要进一步的帮助,我会回来。
    • 糟糕...花了一天时间做应用服务问题,所以在那个回答模式下。冷态不适用,但其他两个仍然适用。
    • 您处于应答模式是一件好事 :) 这是我们构建的一些应用程序中的常见问题。我开始觉得是我自己,因为我没有看到其他人报告这个错误。我搞乱了套接字超时和一些代码清理。希望就是这样。
    • @dinwal 你解决了吗?我很想听听您的反馈
    • 恐怕不行。我现在能够捕捉到异常,但套接字丢弃的错误尚未解决。我尝试为默认套接字超时设置各种值,但没有任何帮助。这实际上是我在 Azure Linux 虚拟机上运行的许多网站的错误。
    【解决方案2】:

    您是否尝试过增加您的 php 套接字连接到的端点超时值。 VM 端点的默认超时为 4 分钟。您可以将其更改为更高的值。这是有关如何做到这一点的文章。 https://azure.microsoft.com/blog/2014/08/14/new-configurable-idle-timeout-for-azure-load-balancer/

    检查此部分:“在虚拟机上创建 Azure 终结点时设置空闲超时”链接。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-21
      • 1970-01-01
      • 2014-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-12
      • 2012-10-01
      相关资源
      最近更新 更多