반응형
Notice
Recent Posts
Recent Comments
Link
개발은 처음이라 개발새발
ERR_CONNECTION_RESET → 실제 원인 찾기 본문
반응형
증상
브라우저/Swagger에서 API 호출 시 Failed to fetch + net::ERR_CONNECTION_RESET 발생. 다른 API는 정상 동작.
1단계 — 서버 생존 확인
다른 API가 되니까 서버 자체 문제는 아님. 이 엔드포인트 호출 시 서버 내부에서 터지는 것으로 판단.
2단계 — 로그 확인
bash
journalctl -u data3 -n 100
응답은 왔는데 500 Internal Server Error 확인:
"GET /data3V1/livescore/volleyballPlayerSeasonStat" 500 Internal Server Error
ERR_CONNECTION_RESET처럼 보였던 이유는 500 에러 시 미들웨어가 응답을 제대로 못 돌려줬기 때문.
3단계 — 정확한 원인 추출
bash
journalctl -u data3 -n 200 | grep -A 5 "Error\|Exception\|Traceback"
실제 에러:
sqlalchemy.exc.ProgrammingError: (pyodbc.ProgrammingError) ('42000',
"저장 프로시저 'SP_TB_LS_GAME_RESULT_VOLLEYBALL_SEASON_PLAYER_INFO_SELECT'을(를) 찾을 수 없습니다. (2812)")
4단계 — 원인 분석
프로시저는 DB에 존재함. 그런데 못 찾는 이유:
- API 코드에서 프로시저를 SP_... 형태로 DB명 없이 호출
- FastAPI의 DB 연결 문자열(DATABASE=)이 프로시저가 실제로 있는 DB와 다른 DB를 바라보고 있음
bash
grep -r "DATABASE\|Initial Catalog" /usr/local/api_server/data3/
로 연결 DB 확인 후 프로시저가 있는 DB명으로 수정하면 해결.
핵심 요약
단계내용
| 겉 증상 | ERR_CONNECTION_RESET |
| 실제 증상 | 500 Internal Server Error |
| 실제 원인 | 저장 프로시저를 찾지 못함 |
| 근본 원인 | DB 연결 컨텍스트 불일치 |
ERR_CONNECTION_RESET이 항상 네트워크 문제는 아니다. 500 에러로 인해 미들웨어가 응답을 정상적으로 반환하지 못할 때도 동일하게 나타난다.
반응형
'개발기초' 카테고리의 다른 글
| [SVN] VS Code에서 SVN 연동하기 - 2 (0) | 2025.04.20 |
|---|---|
| [SVN] VS Code에서 SVN 연동하기 - 1 (0) | 2025.04.20 |