Isilon: Wersja 8.0+ WebUI kończy się niepowodzeniem ze stanem błędu 500 z powodu FD_SETSIZE błędu w Apache2

Summary: Jeśli klient wykonuje zbyt wiele wywołań API w celu nawiązania sesji z węzłem, liczba deskryptorów pliku strumienia w procesie httpd przekracza 1024, co powoduje problemy z 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



Interfejs WebUI nie jest dostępny w przypadku wyświetlenia komunikatu "błąd po stronie serwera ze stanem 500", jak pokazano poniżej:    

kA23a0000000BSdCAM_3_0

W katalogu /var/log/apache2/webui_httpd_error.log widoczne są następujące błędy:    
 
2019-05-16T09:12:26Z <18.3> kanagawa-1 httpd[3004]: [:błąd] [PID 3004:tid 34678361088] (20)Nie jest to katalog: [klient 1X.8X.1XX.1X1:60831] FastCGI: nie udało się połączyć z serwerem "/usr/sbin/isi_papi_d": deskryptor pliku gniazda (1185) jest większy niż FD_SETSIZE (1024), prawdopodobnie trzeba odbudować Apache z większym FD_SETSIZE, referer: https://1X.1XX.1XX.1X8:8080/
2019-05-16T09:12:26Z <18.3> kanagawa-1 httpd[3004]: [:błąd] [PID 3004:tid 34678361088] [klient 1X.8X.1XX.1X1:60831] FastCGI: niekompletne nagłówki (0 bajtów) odebrane z serwera "/usr/sbin/isi_papi_d", referer: https://1X.1XX.1XX.1X8:8080/
2019-05-16T09:12:26Z <18.3> kanagawa-1 httpd[3004]: [:błąd] [PID 3004:tid 34678361088] [klient 1X.8X.1XX.1X1:60831] FastCGI: do_work() nie powiodło się z ret 500 dla żądania GET /platform/5/cluster/identity?_dc=1558011363341 HTTP/1.1, referer: https://1X.1XX.1XX.1X8:8080/

Cause

Ten problem występuje, gdy liczba deskryptorów plików dla Apache2 przekracza 1024, co jest twardym limitem ustawionym dla apache2. 

Można to zweryfikować, uruchamiając poniższe polecenie:    
 
kanagawa-1# for i in $(ps -auwx | grep -i httpd |grep -v grep | awk '{print $2}'); do echo $i ; procstat -f $i ; Zrobić

Zwróć uwagę, że jeden z procesów httpd ma wysoką liczbę FD, która przekracza 1024 (spójrz na kolumnę 3 ostatniego wiersza danych wyjściowych procesu):    
 
kanagawa-1# for i in $(ps -auwx | grep -i httpd |grep -v grep | awk '{print $2}'); zrobić echo $i ; procstat -f $i ; Zrobiono
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 - -

W systemie UNIX i pokrewnych komputerowych systemach operacyjnych deskryptor pliku (FD, rzadziej fildes) jest abstrakcyjnym wskaźnikiem używanym do uzyskiwania dostępu do pliku lub innego zasobu wejścia/wyjścia, takiego jak potok lub gniazdo sieciowe. Deskryptory plików stanowią część interfejsu programowania aplikacji POSIX.

Więcej szczegółów na temat różnych typów FD widocznych w danych wyjściowych procstat można znaleźć tutaj

Resolution

Sprawdź /var/log/apache2/webui_httpd_access.log dla klientów, którzy ustanawiają sesje z węzłem:    
 
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"

Jeśli te komunikaty występują bardzo często (wiele sesji w sekundę), może to łatwo przeciążyć serwer Apache2 i uniemożliwić procesowi Apache2 komunikację isi_papi_d usługą z powodu niedostępności gniazd FD. 

Zidentyfikuj klienta w danych wyjściowych z webui_httpd_access.log i skoryguj go po stronie klienta. 

Aby tymczasowo obejść ten problem, uruchom ponownie usługi Apache2 i isi_webui w celu wyczyszczenia FD. 

Obejście problemu:    
  1. Wyłącz usługi:   
# isi services -a apache2 disable
# isi services -a isi_webui disable 
  1. Sprawdź, czy nie są uruchomione żadne procesy. Zamknij wszystkie uruchomione procesy:   
#isi_for_array " ps -auwx | grep -i httpd | grep -v grep "
  1. Włącz usługi ponownie:    
# isi services -a apache2 enable
# isi services -a isi_webui enable

Additional Information

Znany wyzwalacz tego problemu jest związany z poniższym błędem:   
 

2019-05-16T14:43:20-04:00 <18.3> Kanagawa-1 httpd[80346]: [błąd] [klient 10.118.160.121] Brak nagłówka Origin lub Referer dla ochrony CSRF


Jeśli użytkownik nie uwzględnił żadnych nagłówków/tokenów CSRF podczas próby ustanowienia sesji, klient będzie mógł ustanowić sesję, ale nie będzie mógł zalogować się do klastra. Może to spowodować, że skrypt będzie próbował nawiązać sesję z węzłem, co może prowadzić do wysokiej liczby FD. 

Rozwiązaniem jest wprowadzenie zmian w kliencie, aby były zgodne z kontrolami CSRF. Zapoznaj się z częścią dotyczącą implementowania uwierzytelniania z ochroną CSRF w 517421 bazy wiedzy: OneFS: Jak chronić klaster przed fałszowaniem żądań między lokalizacjami (CSRF) w celu uzyskania dalszych informacji (Tylko zarejestrowani klienci firmy Dell mogą uzyskać dostęp do treści za pośrednictwem łącza do artykułu za pośrednictwem Dell.com/support).

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.