Score:0

Tomcat 8.5.29 พ่น EOFException ด้วย 500 Internal Server Error

ธง ng

ฉันกำลังพยายามเข้าถึงตำแหน่งข้อมูลสปริงในสภาพแวดล้อม AWS-EKS ฉันไม่ได้สร้างปัญหานี้ขึ้นใหม่ภายในเครื่อง แต่ในบันทึกการผลิต เราเห็นข้อผิดพลาดเซิร์ฟเวอร์ภายในล็อต 500 ที่มีข้อยกเว้น EOF ด้านล่างถูกบันทึกในเวลาเดียวกัน:

ประเภทบันทึก: เซิร์ฟเวอร์ Tomcat ข้อความ: Servlet.service() สำหรับ servlet [com.abc.platform.xservices.rest.abcApplication] ในบริบทที่มีพาธ [/something] เกิดข้อยกเว้น [org.glassfish.jersey.server.ContainerException: java.io.EOFException: ไม่คาดคิด EOF อ่านบนซ็อกเก็ต] พร้อมสาเหตุ java.io.EOFException: อ่าน EOF ที่ไม่คาดคิดบนซ็อกเก็ต ที่ org.apache.coyote.http11.Http11InputBuffer.fill(Http11InputBuffer.java:722) ที่ org.apache.coyote.http11.Http11InputBuffer.access$300(Http11InputBuffer.java:40) ที่ org.apache.coyote.http11.Http11InputBuffer$SocketInputBuffer.doRead(Http11InputBuffer.java:1072)

มีความคิดว่าเหตุใดเราจึงเห็นปัญหานี้ในเวอร์ชันที่ใช้งานจริง ขอบคุณ.

Score:0
ธง lu

เป็นข้อผิดพลาดภายในเซิร์ฟเวอร์ ซึ่งจะส่งคืน รหัสสถานะ 500 ในการตอบสนอง

อาจเกิดจากการร้องขอที่ไม่ถูกต้อง แต่รหัสเซิร์ฟเวอร์หรือการโอเวอร์โหลดอาจเป็นสาเหตุได้เช่นกัน หากคุณมีสิทธิ์เข้าถึงเซิร์ฟเวอร์ ให้ตรวจสอบบันทึกเหตุการณ์

ดูสิ่งนี้ด้วย

500 EOF เมื่อคาดส่วนหัวของก้อน

เหตุใด LWP::UserAgent จึงล้มเหลวด้วย '500 EOF'

500 EOF แทนบรรทัดสถานะการตอบกลับในสคริปต์ Perl

ข้อผิดพลาด Apache 1.3 - สถานะ HTTP อ่าน EOF ที่ไม่คาดคิด - รีเซ็ตการเชื่อมต่อ

ข้อผิดพลาด 500!

UPDATE ในทางกลับกัน หากไม่ใช่ข้อความตอบกลับ แต่เป็นข้อยกเว้นจริง ๆ ก็อาจเป็นเพียงจุดบกพร่อง เช่นเดียวกับในจาวาเก่า และวิธีแก้ปัญหาอาจใส่ getResponseCode() ไว้ภายใน try/catch และเรียกเป็นครั้งที่สองโดยมีข้อยกเว้น:

รหัสตอบกลับ int = -1;
    พยายาม {
        responseCode = con.getResponseCode();
    } จับ (IOException ex1) {
        //ตรวจสอบว่าใช่ eof หรือไม่ ถ้าใช่ให้ดึงรหัสอีกครั้ง
        ถ้า (-1 != ex1.getMessage().indexOf("EOF")) {
            พยายาม {
                responseCode = con.getResponseCode();
            } จับ (IOException ex2) {
                System.out.println(ex2.getMessage());
                // จัดการกับข้อยกเว้น
            }
        } อื่น {
            System.out.println(ex1.getMessage());
            // จัดการกับข้อยกเว้น
        }
    }

พูดคุยโดยจำกัดจำนวนการเชื่อมต่อ อ่าน

user3250064 avatar
ng flag
ขอบคุณ Alva ถ้าเราใช้ Http 1.1 โดยค่าเริ่มต้นจะใช้ allowChunking เป็น true.. มีวิธีปิดในไฟล์ config tomcat หรือไม่ ปัญหานี้เกิดขึ้นเฉพาะใน prod env และไม่ใช่ใน non-prod ซึ่งมีการกำหนดค่า tomcat เหมือนกัน ดังนั้นจึงยากที่จะเข้าใจ ขอบคุณสำหรับข้อมูลของคุณ

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา