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>
184 lines
5.0 KiB
Markdown
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 브리핑 실행 시 실전 검증 예정.
|