Isilon:由于 Apache2 中的错误FD_SETSIZE版本 8.0+ WebUI 失败并显示状态 500 错误
Summary: 如果客户端发出过多的 API 调用来与节点建立会话,则针对 httpd 进程的流文件描述符数量超过 1024,这会导致isi_papi_d问题
This article applies to
This article does not apply to
This article is not tied to any specific product.
Not all product versions are identified in this article.
Symptoms
在您收到 “状态为 500 的服务器端故障”的情况下,WebUI 无法访问,如下所示:
您会在 /var/log/apache2/webui_httpd_error.log中看到以下错误:
2019-05-16T09:12:26Z <18.3> kanagawa-1 httpd[3004]:[:error][PID 3004:TID 34678361088](20)不是目录:[客户端 1X.8X.1XX.1X1:60831]FastCGI:无法连接到服务器“/usr/sbin/isi_papi_d”:套接字文件描述符(1185)大于FD_SETSIZE(1024),您可能需要使用更大的FD_SETSIZE重建Apache,referer: https://1X.1XX.1XX.1X8:8080/
2019-05-16T09:12:26Z <18.3> kanagawa-1 httpd [3004]:[:error][PID 3004:TID 34678361088][客户端 1X.8X.1XX.1X1:60831]FastCGI: incomplete headers (0 bytes) received from server “/usr/sbin/isi_papi_d”, referer: https://1X.1XX.1XX.1X8:8080/
2019-05-16T09:12:26Z <18.3> kanagawa-1 httpd [3004]:[:error][PID 3004:TID 34678361088][客户端 1X.8X.1XX.1X1:60831]FastCGI:do_work() 失败,ret 500 用于请求 GET /platform/5/cluster/identity?_dc=1558011363341 HTTP/1.1,referer:https://1X.1XX.1XX.1X8:8080/
2019-05-16T09:12:26Z <18.3> kanagawa-1 httpd [3004]:[:error][PID 3004:TID 34678361088][客户端 1X.8X.1XX.1X1:60831]FastCGI: incomplete headers (0 bytes) received from server “/usr/sbin/isi_papi_d”, referer: https://1X.1XX.1XX.1X8:8080/
2019-05-16T09:12:26Z <18.3> kanagawa-1 httpd [3004]:[:error][PID 3004:TID 34678361088][客户端 1X.8X.1XX.1X1:60831]FastCGI:do_work() 失败,ret 500 用于请求 GET /platform/5/cluster/identity?_dc=1558011363341 HTTP/1.1,referer:https://1X.1XX.1XX.1X8:8080/
Cause
当 Apache2 的文件描述符计数超过 1024(在 apache2 上设置的硬性限制)时,会出现此问题。
通过运行以下命令进行验证:
请注意,其中一个 httpd 进程的 FD 计数很高,超过 1024(查看进程输出最后一行的第 3 列):
在 UNIX 和相关计算机作系统中,文件描述符(FD,较少见于 fildes)是用于访问文件或其他输入/输出资源(如管道或网络套接字)的抽象指示符。文件描述符构成 POSIX 应用程序编程接口的一部分。
有关在 procstat 输出中看到的不同类型的 FD 的更多详细信息,请参阅 此处
通过运行以下命令进行验证:
神奈川县-1# for i in $(ps -auwx | grep -i httpd |grep -v grep | awk '{print $2}'); do echo $i ; procstat -f $i ;做
请注意,其中一个 httpd 进程的 FD 计数很高,超过 1024(查看进程输出最后一行的第 3 列):
神奈川县-1# for i in $(ps -auwx | grep -i httpd |grep -v grep | awk '{print $2}');做回声$i ;procstat -f $i ;done
25136
PID COMM FD T V FLAGS REF OFFSET PRO NAME
25136 httpd text v r r------- - - - /usr/local/apache24/bin/httpd
25136 httpd cwd v d r------- - - - /
25136 httpd root v d r------- - - - /
25136 httpd 0 v c r------- 4 0 - /dev/null
25136 httpd 1 v c -w------ 4 0 - /dev/null
25136 httpd 2 v c -w------ 5 0 - /dev/null
25136 httpd 3 s - rw---n-- 4 0 TCP ::.8080 ::.0
25136 httpd 4 s - rw---n-- 4 0 TCP 0.0.0.0:8080 0.0.0.0:0
25136 httpd 5 s - rw---n-- 4 0 TCP ::.8081 ::.0
25136 httpd 6 s - rw---n-- 4 0 TCP 0.0.0.0:8081 0.0.0.0:0
25136 httpd 7 s - rw---n-- 4 0 TCP ::.8082 ::.0
25136 httpd 8 s - rw---n-- 4 0 TCP 0.0.0.0:8082 0.0.0.0:0
25136 httpd 9 s - rw---n-- 4 0 TCP ::.8083 ::.0
25136 httpd 10 s - rw---n-- 4 0 TCP 0.0.0.0:8083 0.0.0.0:0
25136 httpd 11 p - rw------ 5 0 - -
25136 httpd 12 p - rw------ 4 0 - -
25136 httpd 13 v r -w------ 4 0 - /var/apache2/run/mpm-accept-0.25132
25136 httpd 14 s - rw------ 4 0 UDD /var/run/log
25136 httpd 15 v r -w------ 1 0 - /var/apache2/run/proxy.25132
25136 httpd 16 p - rw------ 4 0 - -
25136 httpd 17 v r -w------ 2 0 - /var/apache2/run/proxy.25132
25136 httpd 18 p - rw------ 2 0 - -
25136 httpd 19 v r -w------ 2 0 - /var/apache2/run/rewrite-map.25132
25136 httpd 20 v r -w-----l 1 0 - /var/apache2/run/mpm-accept-0.25132
25136 httpd 21 v r -w------ 1 0 - /var/apache2/run/rewrite-map.25132
25136 httpd 22 k - rw------ 2 0 - -
25136 httpd 23 s - rw---n-- 1 0 TCP sendq:2146 127.0.0.1:8080 127.0.0.1:18720
25136 httpd 24 v c r------- 1 31968 - /dev/random
25136 httpd 25 ?- R------- 1 0 - -
25136 httpd 27 ?- r------- 1 0 - -
.
.
..
25136 httpd 1121 ?- r------- 1 0 - -
25136
PID COMM FD T V FLAGS REF OFFSET PRO NAME
25136 httpd text v r r------- - - - /usr/local/apache24/bin/httpd
25136 httpd cwd v d r------- - - - /
25136 httpd root v d r------- - - - /
25136 httpd 0 v c r------- 4 0 - /dev/null
25136 httpd 1 v c -w------ 4 0 - /dev/null
25136 httpd 2 v c -w------ 5 0 - /dev/null
25136 httpd 3 s - rw---n-- 4 0 TCP ::.8080 ::.0
25136 httpd 4 s - rw---n-- 4 0 TCP 0.0.0.0:8080 0.0.0.0:0
25136 httpd 5 s - rw---n-- 4 0 TCP ::.8081 ::.0
25136 httpd 6 s - rw---n-- 4 0 TCP 0.0.0.0:8081 0.0.0.0:0
25136 httpd 7 s - rw---n-- 4 0 TCP ::.8082 ::.0
25136 httpd 8 s - rw---n-- 4 0 TCP 0.0.0.0:8082 0.0.0.0:0
25136 httpd 9 s - rw---n-- 4 0 TCP ::.8083 ::.0
25136 httpd 10 s - rw---n-- 4 0 TCP 0.0.0.0:8083 0.0.0.0:0
25136 httpd 11 p - rw------ 5 0 - -
25136 httpd 12 p - rw------ 4 0 - -
25136 httpd 13 v r -w------ 4 0 - /var/apache2/run/mpm-accept-0.25132
25136 httpd 14 s - rw------ 4 0 UDD /var/run/log
25136 httpd 15 v r -w------ 1 0 - /var/apache2/run/proxy.25132
25136 httpd 16 p - rw------ 4 0 - -
25136 httpd 17 v r -w------ 2 0 - /var/apache2/run/proxy.25132
25136 httpd 18 p - rw------ 2 0 - -
25136 httpd 19 v r -w------ 2 0 - /var/apache2/run/rewrite-map.25132
25136 httpd 20 v r -w-----l 1 0 - /var/apache2/run/mpm-accept-0.25132
25136 httpd 21 v r -w------ 1 0 - /var/apache2/run/rewrite-map.25132
25136 httpd 22 k - rw------ 2 0 - -
25136 httpd 23 s - rw---n-- 1 0 TCP sendq:2146 127.0.0.1:8080 127.0.0.1:18720
25136 httpd 24 v c r------- 1 31968 - /dev/random
25136 httpd 25 ?- R------- 1 0 - -
25136 httpd 27 ?- r------- 1 0 - -
.
.
..
25136 httpd 1121 ?- r------- 1 0 - -
在 UNIX 和相关计算机作系统中,文件描述符(FD,较少见于 fildes)是用于访问文件或其他输入/输出资源(如管道或网络套接字)的抽象指示符。文件描述符构成 POSIX 应用程序编程接口的一部分。
有关在 procstat 输出中看到的不同类型的 FD 的更多详细信息,请参阅 此处
Resolution
检查 /var/log/apache2/webui_httpd_access.log 中是否有与节点建立会话的客户端:
如果这些消息非常频繁地出现(一秒钟内有多个会话),这很容易使 Apache2 服务器过载,并由于 FD 套接字不可用而阻止 Apache2 进程与isi_papi_d服务通信。
在 webui_httpd_access.log 输出中识别客户端,并从客户端进行纠正。
作为临时解决方法,请重新启动 Apache2 和 isi_webui 服务以清除 FD。
解决办法:
2019-05-16T10:12:51Z <19.6> kanagawa-1 httpd:127.0.0.1 - - [16/May/2019:10:12:51 +0000] “POST /session/1/session HTTP/1.1” 201 92 “-” “curl/7.57.0”
如果这些消息非常频繁地出现(一秒钟内有多个会话),这很容易使 Apache2 服务器过载,并由于 FD 套接字不可用而阻止 Apache2 进程与isi_papi_d服务通信。
在 webui_httpd_access.log 输出中识别客户端,并从客户端进行纠正。
作为临时解决方法,请重新启动 Apache2 和 isi_webui 服务以清除 FD。
解决办法:
- 禁用服务:
# isi services -a apache2 disable
# isi services -a isi_webui disable
# isi services -a isi_webui disable
- 验证没有正在运行的进程。终止任何正在运行的进程:
# isi_for_array “ ps -auwx |grep -i httpd |grep -v grep ”
-
再次启用服务:
# isi services -a apache2 enable
# isi services -a isi_webui enable
# isi services -a isi_webui enable
Additional Information
此问题的已知触发因素与以下错误相关:
2019-05-16T14:43:20-04:00 <18.3> Kanagawa-1 httpd[80346]:[错误][客户端 10.118.160.121]没有用于 CSRF 保护的 Origin 或 Referer 标头
如果用户在尝试建立会话时未包含任何 CSRF 标头/令牌,则客户端将能够建立会话,但不能登录到群集。这可能会导致脚本继续尝试与节点建立会话,从而导致高 FD 计数。
解决方法是对客户端进行更改,以使其与 CSRF 检查兼容。请参阅知识库文章517421的 如何使用 CSRF 保护实施身份验证部分:OneFS:如何保护您的群集免遭跨站点请求伪造 (CSRF) 的侵害,了解更多信息(只有注册的戴尔客户才能通过 Dell.com/support 访问文章链接上的内容)。
Affected Products
IsilonProducts
Isilon, PowerScale OneFSArticle Properties
Article Number: 000061440
Article Type: Solution
Last Modified: 08 Dec 2025
Version: 4
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.