SIGPIPE在EBSDocker应用程序中写入封闭管道错误

在 EBS 与本地运行 docker 容器时出现莫名其妙的错误。容器运行裸 uWSGI 进程,该进程加载运行长时间(超过 5 秒)请求的应用程序。docker 容器在本地运行良好;当通过盒子上的 ssh 运行时,整个代码路径在 EBS 主机上运行良好(通过以编程方式向入口函数提交请求,模拟来自客户端的 POST 参数)。但是当通过 API 路由通过 http 调用代码路径时,它会出错:

Fri May  7 03:01:40 2021 - SIGPIPE: writing to a closed pipe/socket/fd (probably the client disconnected) on request /preview-map (ip 172.17.0.1) !!!
2021-05-07 03:01:40] log_exception 1761 - Exception on /preview-map [POST]
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/flask/app.py", line 2292, in wsgi_app
    response = self.full_dispatch_request()
   ...
  File "./scene.py", line 135, in scenePreview
    quality=10)  # quality=1 => no shadow/reflection, quality=10 is 'normal'
  File "/usr/local/lib/python3.7/site-packages/vapory/vapory.py", line 102, in render
    quality, antialiasing, remove_temp)
  File "/usr/local/lib/python3.7/site-packages/vapory/io.py", line 114, in render_povstring
    raise IOError("POVRay rendering failed with the following error: "+err)
TypeError: can only concatenate str (not "bytes") to str

我调试了几个小时,假设错误与堆栈跟踪有关:POVRay(由vapory 库在Python 中抽象出来的3D 场景渲染引擎),但我可以在EBS docker 容器上运行POVRay 函数没问题。

有没有可能我在 EBS 中的 uWSGI 进程在 3 秒后关闭了我的连接,而代码中的这个中断只是一个巧合?它是 docker,所以除了 EBS 为过早关闭连接所做的事情之外,我的本地和远程环境之间真的没有任何区别。

我难住了。知道如何进一步调试吗?

以上是SIGPIPE在EBSDocker应用程序中写入封闭管道错误的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>