# 트러블슈팅 이슈 해결 요약 **날짜**: 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 방지 한 단계 실패가 전체 워크플로우 실패로 연쇄되지 않도록 설계. 멱등성으로 안정화. --- ## 인프라 작업 (51123 서버) ### 5. DATA 저장소 클론 및 정리 **작업 일시**: 2025-10-16 21:20 KST **작업 내용**: 1. Gitea 저장소 위치 확인: `/mnt/hdd/gitea-repositories/` (311MB) 2. DATA.git 클론: `/mnt/hdd/data/DATA/` 3. 기존 데이터 이동: `kb_realestate_data/`, `startup_crawl/` → `/mnt/hdd/data/DATA/` **최종 구조**: ``` /mnt/hdd/data/ ├── DATA/ ← Git 관리 │ ├── RWA/ │ ├── startup/ (YC 5,000+개사, VC firms) │ ├── startup_crawl/ (한국 뉴스 4,388건) │ └── kb_realestate_data/ └── documents/ (skill-rag-file 전용) ``` **51124 접근**: `/mnt/51123data/DATA/` (SSHFS) --- ### 6. Neo4j 데이터 디렉토리 HDD 이동 **작업 일시**: 2025-10-16 21:30-21:31 KST **문제**: Neo4j 데이터가 SSD (`/var/lib/neo4j/data`)에 저장되어 스타트업 데이터 로드 시 공간 부족 우려 **작업 단계**: 1. Neo4j 서비스 중지 2. `/var/lib/neo4j/data` → `/mnt/hdd/neo4j/data` 이동 3. 심볼릭 링크 생성: `/var/lib/neo4j/data` → `/mnt/hdd/neo4j/data` 4. 권한 설정: `chown -R neo4j:neo4j /mnt/hdd/neo4j/` 5. Neo4j 재시작 **결과**: - 이전: `/var/lib/neo4j/data` (SSD, 956KB) - 현재: `/mnt/hdd/neo4j/data` (HDD, 517MB) - 심볼릭 링크: 정상 작동 - 서비스 상태: `active (running)` **효과**: - HDD 여유 공간: 867GB - 스타트업 데이터 로드 시 예상 크기: 1-2GB (안전) - 설정 파일 수정 불필요 (심볼릭 링크로 투명하게 처리) **검증**: ```bash ls -lah /var/lib/neo4j/ | grep data # lrwxrwxrwx 1 root root 19 10월 16 21:31 data -> /mnt/hdd/neo4j/data df -h /mnt/hdd/ # /dev/sdb1 916G 3.2G 867G 1% /mnt/hdd systemctl status neo4j # Active: active (running) ``` **향후 계획**: - 스타트업 데이터 Neo4j 구조화 (YC + 한국 기업 + VC + 뉴스) - 예상 소요 시간: 2.5-4시간 (스크립트 작성 포함) --- ## 저장소 현황 (51123) ### Gitea - **위치**: `/mnt/hdd/gitea-repositories/` (HDD) - **크기**: 311MB - **조직**: ivada_ro-being (30개 프로젝트) ### 데이터 - **위치**: `/mnt/hdd/data/` (HDD) - **구조**: - `DATA/`: 158MB (Git 관리, 스타트업 데이터) - `documents/`: skill-rag-file 업로드 ### Neo4j - **위치**: `/mnt/hdd/neo4j/data/` (HDD, 심볼릭 링크) - **크기**: 517MB - **상태**: 정상 실행 중