2021-06-16 18:15 采纳率: 0%
浏览 127
已结题

为什么spawn-fcgi 会阻塞在请求入口函数FCGI_Accept()中的read函数?

背景:使用c++ nginx spawn-fcgi 开发微信和小程序的后台web 服务器,两个插件spawn-fcgi-1.6.4,fcgi-2.4.0,因为功能简单,微信和小程序的请求共用一个ip和端口,用到开发组件mysql和redis,rabbitmq

问题详述:隔几天公众号服务器就卡住不能用,我用的单进程单线程,用gdb attach 进程,发现程序卡在服务器http请求入口函数FCGI_Accept()里面的read()函数,读阻塞了?因为这个read函数是在fcgi-2.4.0库函数里面的,底层好像是用select做的,对底层不是很熟悉,用netstat 命令,有很多close-wait,根据tcp原理,大致原因是客户端关闭连接,而我服务器没有关闭连接导致,但是让我困惑的是,如果是我业务代码没有关闭连接,程序为什么会卡在服务器http请求入口函数FCGI_Accept()里面的read()函数,什么原因会导致出现这种情况,有没有办法复现??

能提供思路帮我解决的,奖励就给

  • 写回答

2条回答 默认 最新

报告相同问题?

悬赏问题

  • ¥200 相机拍直接转存到电脑上 立拍立穿无线局域网传
  • ¥15 (关键词-电路设计)
  • ¥15 如何解决MIPS计算是否溢出
  • ¥15 vue中我代理了iframe,iframe却走的是路由,没有显示该显示的网站,这个该如何处理
  • ¥15 操作系统相关算法中while();的含义
  • ¥15 CNVcaller安装后无法找到文件
  • ¥15 visual studio2022中文乱码无法解决
  • ¥15 关于华为5g模块mh5000-31接线问题
  • ¥15 keil L6007U报错
  • ¥15 webapi 发布到iis后无法访问