DOCS/troubleshooting/251016_troubleshooting_summary.md
Claude-51124 f9a5b96df2 Add troubleshooting documentation for 3 resolved issues
Documents created:
- 251016_coldmail_duplicate_file_fix.md: Idempotent file upload solution
- 251016_troubleshooting_summary.md: Summary of 3 issues resolved on 251016

Issues resolved:
1. Coldmail IR analysis failure (duplicate file handling)
2. NaverWorks Briefing system UUID error
3. gRPC + uvloop BlockingIOError log noise

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-16 16:14:13 +09:00

184 lines
5.0 KiB
Markdown

# 트러블슈팅 이슈 해결 요약
**날짜**: 2025-10-16
**작성자**: Claude (51124 서버 전담)
**작업 기간**: 16:06 - 16:12 KST
---
## 완료된 이슈
### 1. Coldmail IR 분석 실패 - 중복 파일 처리 개선 ✅
**문제**: 동일 PDF 재업로드 시 `400 - File already exists` 에러로 전체 IR 분석 실패
**해결**:
- 위치: `skill-rag-file/app/api/upload.py:60-79`
- HTTPException 제거 → 기존 document_id 반환 (멱등성 보장)
- 커밋: cea055c
- 상태: 배포 완료, skill-rag-file 컨테이너 정상 작동
**효과**:
- 동일 파일 여러 번 업로드 가능
- 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 (return True)
- 커밋: 2f767b3
- 상태: 배포 완료, rb8001 컨테이너 정상 작동
**효과**:
- NaverWorks Briefing 정상 작동 (감정 저장 제외)
- ERROR 로그 제거
- 기능 영향 없음
**향후 개선**: 전용 시스템 UUID 생성 또는 emotion_readings.user_id nullable 변경 (51123 서버 작업 필요)
---
### 3. gRPC + uvloop BlockingIOError 로그 노이즈 억제 ✅
**문제**: gRPC (Vertex AI 호출)와 uvloop 이벤트 루프 경합으로 BlockingIOError 로그 노이즈 발생
**해결**:
- 위치: `rb8001/app/core/logger.py:41-44`
- gRPC 로거 레벨 → CRITICAL
- asyncio 로거 레벨 → WARNING
- 커밋: adae74c
- 상태: 배포 완료, rb8001 컨테이너 정상 작동
**효과**:
- BlockingIOError 로그 숨김
- 실제 오류 추적 용이
- 기능 영향 없음 (로그만 억제)
---
## 미해결 이슈 (51123 서버 작업 필요)
### 4. Slack 봇 설치 workspace_id 컬럼 오류 ⏸️
**문제**: auth-server의 workspace_member 테이블에 workspace_id 컬럼 없음
**위치**: `auth-server/app/providers/slack.py:408-418`
**해결 방법**:
- `workspace_member.workspace_id``user.team_id` 변경
- 또는 workspace_member 테이블에 workspace_id 컬럼 추가
**상태**: 51123 서버 작업 필요 (auth-server)
---
## 배포 상태
### skill-rag-file
- 커밋: cea055c
- 상태: Up (healthy)
- 변경: 중복 파일 멱등성 보장
### rb8001
- 커밋: adae74c
- 상태: Up (healthy)
- 변경: system UUID 처리 + gRPC 로그 억제
---
## 검증 계획
### 즉시 확인 ✅
- [x] skill-rag-file 컨테이너 정상 작동
- [x] rb8001 컨테이너 정상 작동
- [x] 헬스체크 통과
### 내일 검증 (2025-10-17)
- [ ] **09:00 NaverWorks Briefing**: system UUID 오류 로그 사라짐 확인
- [ ] **09:00 NaverWorks Briefing**: gRPC BlockingIOError 로그 사라짐 확인
- [ ] **09:05 Coldmail Briefing**: PDF 업로드 성공 확인
- [ ] **09:05 Coldmail Briefing**: IR 분석 실제 데이터 반환 확인
- [ ] **09:05 Coldmail Briefing**: Slack Lists 전송 성공 확인
### 로그 체크 포인트
```bash
# NaverWorks Briefing (09:00)
docker logs rb8001 --since "2025-10-17T09:00:00" | grep -iE "system|grpc|blocking"
# Coldmail Briefing (09:05)
docker logs rb8001 --since "2025-10-17T09:05:00" | grep -iE "upload|document_id"
docker logs skill-rag-file --since "2025-10-17T09:05:00" | grep "File already exists"
```
---
## 교훈
### 1. 멱등성 설계 (Idempotency)
**원칙**: 동일 요청을 여러 번 실행해도 결과가 같아야 함
**적용**: 중복 체크 시 "에러"가 아닌 "기존 리소스 반환"
### 2. 시스템 사용자 처리 정책
**문제**: 사용자가 아닌 시스템 작업의 user_id 처리 미정의
**해결**:
- 단기: 시스템 user_id 감지 후 skip
- 장기: 전용 시스템 UUID 생성
### 3. 로그 레벨 관리
**원칙**: 외부 라이브러리 로그는 필요 시 레벨 조정
**적용**: gRPC, asyncio 로거 레벨 상향 조정
### 4. Cascading Failure 방지
**원칙**: 한 단계 실패가 전체 워크플로우 실패로 이어지지 않도록
**적용**:
- PDF 업로드 실패 → IR 분석 실패 → Slack 전송 실패 (연쇄)
- 멱등성으로 PDF 업로드 안정화
---
## 다음 단계
### 51124 서버 (완료)
- [x] Coldmail 중복 파일 처리 개선
- [x] NaverWorks system UUID 오류 해결
- [x] gRPC 로그 노이즈 억제
### 51123 서버 (향후)
- [ ] Slack 봇 설치 workspace_id 오류 수정 (auth-server)
- [ ] emotion_readings.user_id nullable 또는 시스템 UUID 생성
---
## 결론
**51124 서버 트러블슈팅 완료 (3/4 이슈 해결)**
**2025-10-16, 트러블슈팅 이슈 3건 해결 배포**
### 핵심 성과
1. **Coldmail IR 분석 안정화**: 중복 파일 멱등성 보장
2. **NaverWorks Briefing 정상화**: system UUID 오류 해결
3. **로그 품질 개선**: gRPC 노이즈 억제로 실제 오류 추적 용이
4. **즉시 배포**: skill-rag-file + rb8001 재시작 완료
### 검증 대기
내일 09:00-09:10 브리핑 실행 시 실전 검증 예정.