Puncte:0

Tomcat 8.5.29 lansează EOFException cu 500 de erori interne ale serverului

drapel ng

Încerc să accesez punctul final de primăvară în mediul AWS-EKS, nu recreez această problemă la nivel local, dar în jurnalele de producție vedem lotul 500 Eroare de server internă cu excepția EOF de mai jos înregistrată în același timp:

tip log: tomcat-server mesaj: Servlet.service() pentru servlet [com.abc.platform.xservices.rest.abcApplication] în context cu calea [/something] a aruncat excepția [org.glassfish.jersey.server.ContainerException: java.io.EOFException: Neașteptat EOF citit pe soclu] cu cauza principală java.io.EOFException: EOF neașteptat citit pe socket la org.apache.coyote.http11.Http11InputBuffer.fill(Http11InputBuffer.java:722) la org.apache.coyote.http11.Http11InputBuffer.access $300(Http11InputBuffer.java:40) la org.apache.coyote.http11.Http11InputBuffer$SocketInputBuffer.doRead(Http11InputBuffer.java:1072)

Aveți idee de ce vedem acest lucru în problemă în producție? Mulțumiri.

Puncte:0
drapel lu

Este o eroare internă a serverului, care revine codul de stare 500 ca răspuns

Acest lucru poate fi cauzat de solicitări incorecte, dar, de asemenea, codul serverului sau supraîncărcarea poate fi motivul. Dacă aveți acces la server, verificați jurnalele de evenimente.

Vezi si

500 EOF când se așteaptă antetul blocului

De ce ar putea LWP::UserAgent să eșueze cu „500 EOF”?

500 EOF în loc de linia de stare a răspunsului în scriptul perl

Eroare Apache 1.3 - EOF neașteptat citirea stării HTTP - resetare conexiune

Eroare 500!

UPDATE Pe de altă parte, dacă nu este un mesaj de răspuns, ci o excepție reală, atunci poate fi pur și simplu o eroare, la fel ca în vechiul Java Și soluția poate fi punerea getResponseCode() în interiorul try/catch and call a doua oară cu excepția:

int responseCode = -1;
    încerca {
        responseCode = con.getResponseCode();
    } captură (IOException ex1) {
        //verificați dacă este eof, dacă da recuperați codul din nou
        dacă (-1 != ex1.getMessage().indexOf("EOF")) {
            încerca {
                responseCode = con.getResponseCode();
            } captură (IOException ex2) {
                System.out.println(ex2.getMessage());
                // gestionează excepția
            }
        } altfel {
            System.out.println(ex1.getMessage());
            // gestionează excepția
        }
    }

Vorbind după limita numărului de conexiuni, citește.

user3250064 avatar
drapel ng
Mulțumesc Alva, dacă folosim Http 1.1, atunci în mod implicit folosește allowChunking ca adevărat.. Există o modalitate de a-l dezactiva în fișierele de configurare Tomcat? de asemenea, această problemă se întâmplă numai în prod env și nu în non-prod, care are aceleași configurații Tomcat, așa că este greu de înțeles. Vă mulțumim pentru contribuții.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.