Isilon: Версія 8.0+ WebUI провалилася з помилкою статусу 500 через помилку FD_SETSIZE Apache2

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



WebUI недоступний, якщо ви отримуєте «серверну помилку зі статусом 500», як показано нижче:    

kA23a0000000BSdCAM_3_0

І ви бачите ці помилки у /var/log/apache2/webui_httpd_error.log:    
 
2019-05-16T09:12:26Z <18.3> Kanagawa-1 httpd[3004]: [:помилка] [PID 3004:tid 34678361088] (20)Не каталог: [клієнт 1X.8X.1XX.1X1:60831] FastCGI: не вдалося підключитися до сервера "/usr/sbin/isi_papi_d": дескриптор файлу сокета (1185) більший за FD_SETSIZE (1024), ймовірно, потрібно перебудувати Apache з більшим FD_SETSIZE, посилання: https://1X.1XX.1XX.1X8:8080/
2019-05-16T09:12:26Z <18.3> kanagawa-1 httpd[3004]: [:помилка] [PID 3004:tid 34678361088] [клієнт 1X.8X.1XX.1X1:60831] FastCGI: неповні заголовки (0 байт) отримані з сервера "/usr/sbin/isi_papi_d", посилання: https://1X.1XX.1XX.1X8:8080/
2019-05-16T09:12:26Z <18.3> kanagawa-1 httpd[3004]: [:помилка] [PID 3004:tid 34678361088] [клієнт 1X.8X.1XX.1X1:60831] FastCGI: do_work() не справився з ret 500 для запиту GET /platform/5/cluster/identity?_dc=1558011363341 HTTP/1.1, реферер: https://1X.1XX.1XX.1X8:8080/

Cause

Ця проблема виникає, коли кількість File Descriptor для Apache2 перевищує 1024, що є жорстким лімітом, встановленим для apache2. 

Це підтверджується, виконавши команду нижче:    
 
kanagawa-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 останнього рядка виводу процесу):    
 
kanagawa-1# for i in $(ps -auwx | grep -i httpd |grep -v grep | awk '{print $2}'); do echo $i ; procstat -f $i ; зроблено
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 ? - Р------- 10 - -
.
.
..

25136 httpd 1121 ? - Р------- 1 0 - -

В UNIX та пов'язаних комп'ютерних операційних системах дескриптор файлів (FD, рідше fildes) — це абстрактний індикатор, який використовується для доступу до файлу або іншого вхідного/вихідного ресурсу, такого як труба або мережевий роз'єм. Файлові дескриптори є частиною інтерфейсу

програмування POSIX.Більше деталей про різні типи FD, які видно у виході procstat, можна знайти тут

Resolution

Перевірте /var/log/apache2/webui_httpd_access.log для клієнтів, які встановлюють сесії з вузлом:    
 
2019-05-16T10:12:51Z <19.6> Kanagawa-1 httpd: 127.0.0.1 - - [16/травень/2019:10:12:51 +0000] "POST /session/1/session HTTP/1.1" 201 92 "-" "curl/7.57.0"

Якщо ці повідомлення з'являються дуже часто (кілька сесій за секунду), це може легко перевантажити сервер Apache2 і завадити процесу Apache2 спілкуватися з isi_papi_d сервісом через недоступність сокетів FD. 

Визначте клієнта у вихідному результаті webui_httpd_access.log і виправте його зі сторони клієнта. 

Як тимчасовий обхідний шлях, перезапустіть сервіси Apache2 та isi_webui, щоб очистити FD. 

Обхідний шлях:    
  1. Вимкніть послуги:   
# ISI Services -A Apache2 DISABLE
# ISI Services -A isi_webui disable 
  1. Перевірте, чи немає запущених процесів. Зупиніть усі запущені процеси:   
# isi_for_array " PS -auwx | grep -i httpd | grep -v grep "
  1. Увімкніть сервіси знову:    
# isi services -a apache2 enable
# isi services -a isi_webui enable

Additional Information

Відомий тригер цієї проблеми пов'язаний із наведеною нижче помилкою:   
 

2019-05-16T14:43:20-04:00 <18.3> Канагава-1 httpd[80346]: [помилка] [клієнт 10.118.160.121] Немає заголовка Origin або Referer для захисту CSRF


Якщо користувач не включив жодних CSRF-заголовків/токен при спробі створити сесію, клієнт зможе встановити сесію, але не увійти в кластер. Це може призвести до того, що скрипт постійно намагатиметься встановити сесію з вузлом, що може призвести до високої кількості FD. 

Розв'язання полягає у внесенні змін до клієнта, щоб він був сумісний із перевірками CSRF. Дивіться до розділу KB 517421 про те, як реалізувати автентифікацію за допомогою CSRF-захисту: OneFS: Як захистити свій кластер від підробки запитів між сайтами (CSRF) для отримання додаткової інформації (доступ до контенту за Dell.com/support посиланням на статтю можуть доступні лише зареєстровані клієнти Dell).

Affected Products

Isilon

Products

Isilon, PowerScale OneFS
Article 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.