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

Resumo: 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

Este artigo aplica-se a Este artigo não se aplica a Este artigo não está vinculado a nenhum produto específico. Nem todas as versões do produto estão identificadas neste artigo.

Sintomas



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/

Causa

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

Resolução

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

Mais informações

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).

Produtos afetados

Isilon

Produtos

Isilon, PowerScale OneFS
Propriedades do artigo
Número do artigo: 000061440
Tipo de artigo: Solution
Último modificado: 08 dez. 2025
Versão:  4
Encontre as respostas de outros usuários da Dell para suas perguntas.
Serviços de suporte
Verifique se o dispositivo está coberto pelos serviços de suporte.