Isilon: Version 8.0+ WebUI schlägt mit Fehler Status 500 aufgrund FD_SETSIZE Fehlers in Apache2 fehl
Resumo: Wenn ein Client zu viele API-Aufrufe unternimmt, um eine Sitzung mit einem Node herzustellen, überschreitet die Anzahl der Streamdateideskriptoren für den HTTPD-Prozess 1024, was zu Problemen mit isi_papi_d ...
Sintomas
Die WebUI ist nicht zugänglich, wenn Sie einen "serverseitigen Fehler mit Status 500" erhalten, wie unten dargestellt:
Und Sie sehen diese Fehler in /var/log/apache2/webui_httpd_error.log:
2019-05-16T09:12:26Z <18.3> kanagawa-1 httpd[3004]: [:Fehler] [PID 3004:TID 34678361088] [client 1X.8X.1XX.1X1:60831] FastCGI: unvollständige Header (0 Bytes) vom Server "/usr/sbin/isi_papi_d empfangen", Referer: https://1X.1XX.1XX.1X8:8080/
2019-05-16T09:12:26Z <18.3> kanagawa-1 httpd[3004]: [:Fehler] [PID 3004:TID 34678361088] [client 1X.8X.1XX.1X1:60831] FastCGI: do_work() fehlgeschlagen mit ret 500 für Anfrage GET /platform/5/cluster/identity?_dc=1558011363341 HTTP/1.1, Referer: https://1X.1XX.1XX.1X8:8080/
Causa
Dies wird überprüft, indem Sie den folgenden Befehl ausführen:
Beachten Sie, dass einer der httpd-Prozesse eine hohe FD-Anzahl aufweist, die 1024 überschreitet (siehe Spalte 3 der letzten Zeile der Prozessausgabe):
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 - -
In UNIX und verwandten Computerbetriebssystemen ist ein Dateideskriptor (FD, seltener fildes) ein abstrakter Indikator, der für den Zugriff auf eine Datei oder eine andere Input/Output-Ressource wie eine Pipe oder einen Netzwerksocket verwendet wird. Dateideskriptoren sind Teil der POSIX-Anwendungsprogrammierschnittstelle.
Weitere Details zu den verschiedenen Arten von FDs, die in der procstat-Ausgabe angezeigt werden, finden Sie hier
Resolução
Wenn diese Meldungen sehr häufig auftreten (mehrere Sitzungen in einer Sekunde), kann dies den Apache2-Server leicht überlasten und verhindern, dass der Apache2-Prozess mit isi_papi_d Service kommuniziert, da FD-Sockets nicht verfügbar sind.
Identifizieren Sie den Client in der Ausgabe von webui_httpd_access.log und korrigieren Sie ihn von der Clientseite aus.
Starten Sie als vorübergehenden Workaround die Apache2- und isi_webui-Services neu, um die FDs zu löschen.
Problemumgehung:
- Deaktivieren Sie die Services:
# isi services -a isi_webui disable
- Stellen Sie sicher, dass keine Prozesse ausgeführt werden. Beenden Sie alle laufenden Prozesse:
-
Aktivieren Sie die Services erneut:
# isi services -a isi_webui enable
Mais informações
Ein bekannter Auslöser für dieses Problem hängt mit dem folgenden Fehler zusammen:
Wenn der Nutzer beim Versuch, eine Sitzung einzurichten, keine CSRF-Header/-Token eingeschlossen hat, kann der Client eine Sitzung einrichten, sich aber nicht beim Cluster anmelden. Dies kann dazu führen, dass das Skript immer wieder versucht, eine Sitzung mit dem Node herzustellen, was zu einer hohen Anzahl von Dateisicherungen führen kann.
Die Lösung besteht darin, Änderungen am Client vorzunehmen, damit er mit den CSRF-Prüfungen kompatibel ist. Weitere Informationen finden Sie im Abschnitt zur Implementierung der Authentifizierung mit CSRF-Schutz in KB 517421: OneFS: So schützen Sie Ihren Cluster vor Cross-Site Request Forgery (CSRF) Für weitere Informationen (Nur registrierte Dell Kunden können über Dell.com/support auf die Inhalte über den Artikellink zugreifen.)