Backend
[JAVA] Broken pipe 에러란 ? 언제 발생하는가?
Dddu
2025. 6. 1. 23:37
진짜 지긋 지긋 !!!! 한 파이프가 깨어짐 에러 ㅠ
해결하기 위해 패치작업이 예정되어 있으며 이것 저것 원인을 찾아보고 있다 ..
지긋 지!긋 !!!!한 이 에러 무엇일까?
- broken pike란 ?
Broken pipe는 Java에서 소켓 통신 중 상대방이 먼저 연결을 종료했는데, 그 사실을 모른 채 데이터를 보내려 할 때 발생하는 예외이다.
운영체제 입장에서 보면 데이터 수신 측이 사라졌기 때문에 “파이프가 끊어졌다”고 판단하고 예외를 발생시키는 것이다.
java.net.SocketException: Broken pipe
java.io.IOException: Broken pipe
- 주로 발생하는 상황
클라이언트가 먼저 연결을 끊고 서버가 나중에 데이터를 전송하려는 경우이다.
커넥션 풀에서 오래된 소켓을 재사용했는데, 이미 끊긴 연결일 경우이다.
nginx 등 중간 프록시가 idle timeout으로 연결을 끊었는데, 백엔드에서 몰랐을 경우이다.
클라이언트 측에서 네트워크 오류 등으로 소켓이 닫혔는데 서버는 write 시도를 하는 경우이다.
Broken pipe는 단순한 네트워크 에러처럼 보일 수 있으나, 서버 리소스 낭비나 장애의 원인이 될 수 있다.
특히 대규모 트래픽 환경에서는 커넥션 풀 설정, 타임아웃 조정, 적절한 예외 처리 등을 통해 예방하는 것이 중요하다.
해결방법 찾아서 해결되면 그걸로 포스팅 하겠다..😢