2013-06-05 31 views
7

Trong ứng dụng Node.js của tôi trong đó sử dụng các module cụm, tôi liên tục gặp lỗi như thế này:Debugging ngoại lệ đi lạc còn tự do (ECONNRESET) trong một cụm nút

events.js:71 
     throw er; // Unhandled 'error' event 
      ^
Error: read ECONNRESET 
    at errnoException (net.js:863:11) 
    at TCP.onread (net.js:524:19) 

này mang xuống toàn bộ ứng dụng của tôi, và cho đến nay cách duy nhất tôi đã có thể đối phó với những điều này là bằng cách ràng buộc một process.on('uncaughtException'). Tôi muốn tìm ra nguyên nhân cơ bản, nhưng theo dõi ngăn xếp ở trên là khá vô ích.

Có cách nào để tìm ra nguyên nhân gây ra những ngoại lệ này không? Tôi nên lưu ý rằng tôi chỉ nhìn thấy những điều này trong chủ nhóm, chứ không phải công nhân, dẫn tôi đến nghi ngờ rằng họ có liên quan gì đó đến cách các mô-đun cụm thực hiện phép thuật trong việc phân phối các kết nối tới công nhân.

+0

thể trùng lặp của [Làm thế nào để gỡ lỗi một ổ cắm ngắt kết nối lỗi trong NodeJS?] (http://stackoverflow.com/questions/10814481/how-to-debug-a-socket-hang-up-error-in-nodejs) –

Trả lời

1

Câu trả lời này là hữu ích: https://stackoverflow.com/a/11542134/233370

Về cơ bản, tôi đã cài đặt longjohn và sau đó có thể để có được những async stack trace đầy đủ để tìm ra nguyên nhân cơ bản (rabbit.js trong trường hợp của tôi).

0

Dường như mặc định được bật theo mặc định. Để đóng kết nối sau khi trả lời, bạn có thể thêm res.set("Connection", "close");

Hoặc bạn có thể thêm một middleware trong ứng dụng của bạn để đóng kết nối sau mỗi câu trả lời:

app.use(function(req, res, next) { 
     res.set("Connection", "close"); 
     next(); 
    }); 
Các vấn đề liên quan