Changes: - 251016_coldmail_duplicate_file_fix.md: 298줄 → 111줄 - 251016_troubleshooting_summary.md: 184줄 → 109줄 Applied principles (312_문서_작성_원칙.md): - Removed excessive code blocks - Kept file:line references only - Removed emojis - Reduced to ~100 lines per document - Kept core information and lessons learned
109 lines
3.0 KiB
Markdown
109 lines
3.0 KiB
Markdown
# 트러블슈팅 이슈 해결 요약
|
|
|
|
**날짜**: 2025-10-16
|
|
**작성자**: Claude (51124 서버 전담)
|
|
**작업 기간**: 16:06 - 16:12 KST
|
|
|
|
---
|
|
|
|
## 완료된 이슈 (51124 서버)
|
|
|
|
### 1. Coldmail IR 분석 실패 - 중복 파일 처리
|
|
|
|
**문제**: 동일 PDF 재업로드 시 400 에러로 전체 IR 분석 실패
|
|
|
|
**해결**: skill-rag-file/app/api/upload.py:60-79
|
|
- HTTPException 제거, 기존 document_id 반환 (멱등성 보장)
|
|
- 커밋: cea055c
|
|
|
|
**효과**: Coldmail 워크플로우 안정화, 네트워크 재시도 안전
|
|
|
|
**상세**: 251016_coldmail_duplicate_file_fix.md
|
|
|
|
---
|
|
|
|
### 2. NaverWorks Briefing system UUID 오류
|
|
|
|
**문제**: user_id="system" 문자열이 UUID 타입 불일치로 emotion_readings 저장 실패
|
|
|
|
**해결**: rb8001/app/state/database.py:145-155
|
|
- "system" user_id 발견 시 저장 skip
|
|
- 커밋: 2f767b3
|
|
|
|
**효과**: NaverWorks Briefing 정상 작동, ERROR 로그 제거
|
|
|
|
**향후**: 전용 시스템 UUID 생성 또는 emotion_readings.user_id nullable 변경 (51123 서버)
|
|
|
|
---
|
|
|
|
### 3. gRPC + uvloop BlockingIOError 로그 노이즈
|
|
|
|
**문제**: gRPC (Vertex AI)와 uvloop 이벤트 루프 경합으로 로그 노이즈 발생
|
|
|
|
**해결**: rb8001/app/core/logger.py:41-44
|
|
- gRPC 로거 레벨 CRITICAL
|
|
- asyncio 로거 레벨 WARNING
|
|
- 커밋: adae74c
|
|
|
|
**효과**: BlockingIOError 로그 숨김, 실제 오류 추적 용이
|
|
|
|
---
|
|
|
|
## 미해결 이슈 (51123 서버)
|
|
|
|
### 4. Slack 봇 설치 workspace_id 컬럼 오류
|
|
|
|
**상태**: 해결 완료 (2025-10-16, 사용자 작업)
|
|
|
|
**문제**: workspace_member 테이블에 workspace_id 컬럼 없음
|
|
|
|
**해결**: auth-server/app/providers/slack.py:414-419
|
|
- workspace_member.workspace_id → user.team_id 사용
|
|
|
|
---
|
|
|
|
## 배포 상태
|
|
|
|
**skill-rag-file**: cea055c (healthy) - 중복 파일 멱등성 보장
|
|
**rb8001**: adae74c (healthy) - system UUID 처리 + gRPC 로그 억제
|
|
|
|
---
|
|
|
|
## 검증 계획
|
|
|
|
### 내일 실전 검증 (2025-10-17)
|
|
|
|
**09:00 NaverWorks Briefing**:
|
|
- system UUID 오류 로그 사라짐 확인
|
|
- gRPC BlockingIOError 로그 사라짐 확인
|
|
|
|
**09:05 Coldmail Briefing**:
|
|
- PDF 업로드 성공 확인
|
|
- IR 분석 실제 데이터 반환 확인
|
|
- Slack Lists 전송 성공 확인
|
|
|
|
**로그 체크**:
|
|
- rb8001: docker logs rb8001 --since "2025-10-17T09:00:00" | grep -iE "system|grpc|blocking"
|
|
- rb8001: docker logs rb8001 --since "2025-10-17T09:05:00" | grep -iE "upload|document_id"
|
|
- skill-rag-file: docker logs skill-rag-file --since "2025-10-17T09:05:00" | grep "File already exists"
|
|
|
|
---
|
|
|
|
## 교훈
|
|
|
|
### 멱등성 설계
|
|
|
|
동일 요청 여러 번 실행 시 결과 동일해야 함. 중복 체크 시 에러가 아닌 기존 리소스 반환.
|
|
|
|
### 시스템 사용자 처리 정책
|
|
|
|
시스템 작업의 user_id 처리 미정의. 단기는 skip, 장기는 전용 UUID 생성.
|
|
|
|
### 로그 레벨 관리
|
|
|
|
외부 라이브러리 로그는 필요 시 레벨 조정으로 노이즈 제거.
|
|
|
|
### Cascading Failure 방지
|
|
|
|
한 단계 실패가 전체 워크플로우 실패로 연쇄되지 않도록 설계. 멱등성으로 안정화.
|