ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 맥북 Self-hosted GitHub Actions Runner 설정 후 오류 수습..🧨 | (모든 파일 손상/인식 불가, iCloud 동기화 이상 문제)
    Dev🚀 2025. 9. 16. 00:03

    참고글:https://jungheeho.tistory.com/103

     

    Alo 재입고 알림봇 개발_5(Self-hosted runner)

    이전글:https://jungheeho.tistory.com/102 Alo 재입고 알림봇 개발_4(HTML fallback 보강)이전글:https://jungheeho.tistory.com/101 Alo 재입고 알림봇 개발_3이전글:https://jungheeho.tistory.com/100 Alo 재입고 알림봇 개발_2이전

    jungheeho.tistory.com

    맥북을 로컬 self-hosted runner로 돌리면서 20분마다 워크플로우가 실행되도록 설정했습니다. 처음에는 잘 돌아가는 듯했는데, 어느 순간 VS Code가 폴더 열기에서 멈추고, 

    • VS Code에서 폴더 선택 → 열기가 안 되고 바로 닫힘
    • Finder에서 파일을 더블클릭하면 “손상되었거나 인식할 수 없는 포맷” 오류
    • iCloud Drive는 모든 파일이 ‘업로드 대기 중’에서 멈춤

    이라는 대참사가 발생했습니다 😂

    이번 글에서는 원인 분석부터 복구까지 제가 실제로 한 과정을 기록해 두려고 합니다.
    비슷한 상황에 부딪힌 분들께 도움이 되길 바랍니다.

     

    🧩 원인 분석

    1. VS Code 캐시 손상 + GPU 가속 충돌
      → 창이 뜨자마자 꺼지며 폴더 열기가 불가능.
    2. LaunchServices/Finder 캐시 꼬임
      → 파일 열기 전반이 실패하고 손상된 파일처럼 보임.
    3. iCloud Drive 동기화 데몬(bird) 루프
      → CPU 90% 이상 점유, 업로드/다운로드가 모두 정지.
      → 로컬에 파일이 없으니 Preview에서 "손상" 메시지가 뜬 것.
    4. First Aid 검사 결과
      → 디스크 자체 손상은 없음. 즉 OS/스토리지 문제는 아니었음.

    🛠️ 복구 단계

    1) VS Code 안전 모드 & 캐시 정리

    # VS Code 완전 종료
    osascript -e 'tell application "Visual Studio Code" to quit' 2>/dev/null
    killall "Visual Studio Code" 2>/dev/null || true
    killall "Code Helper" 2>/dev/null || true
    
    # 손상된 캐시 제거
    rm -rf "$HOME/Library/Application Support/Code/Service Worker" \
           "$HOME/Library/Application Support/Code/Cache" \
           "$HOME/Library/Application Support/Code/Code Cache" \
           "$HOME/Library/Application Support/Code/GPUCache" \
           "$HOME/Library/Application Support/Code/User/workspaceStorage"
    
    # 확장/가속 끄고 실행
    code -n --disable-extensions --disable-gpu --verbose

    2) LaunchServices DB 재빌드 + Finder 재시작

    /System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister \
    -kill -r -domain local -domain system -domain user
    
    killall Finder

    3) 디스크/파일시스템 검사 (First Aid)

     

    • 디스크 유틸리티 → Macintosh HD 선택 → 검사/복구 실행
    • 결과: “문제 없음 / 작업 성공” → 하드웨어/파일시스템 손상 아님 확인.

     

    4) iCloud 동기화 프로세스 재시작

    # iCloud 동기화 담당 프로세스 재시작
    killall bird
    killall cloudd

    5) launchd & Runner 점검

    # 자동 실행된 job 확인
    launchctl list | grep -i -E 'code|runner|github|actions'
    
    # self-hosted runner 상태 확인
    ps aux | grep Runner.Listener
    • 불필요한 자동 실행(launchd job) 제거
    • Runner는 iCloud 폴더 밖 전용 경로(~/work)에서 실행 추천
    • 워크플로우 주기를 무조건 짧게(20분) 잡는 건 피하는 게 좋음

    ✅ 교훈 & 재발 방지

    • VS Code 캐시 꼬임은 캐시 디렉터리 삭제로 대부분 해결 가능.
    • macOS에서 파일이 전부 “손상”처럼 보이면, iCloud 동기화 상태부터 확인할 것.
    • bird 프로세스가 CPU를 장시간 90% 이상 잡아먹는다면 → 동기화 루프에 빠진 것.
    • Runner는 가능하면 클라우드/서버 VM으로 이전하는 게 안정적.
    # VS Code 캐시 초기화
    osascript -e 'tell application "Visual Studio Code" to quit' 2>/dev/null
    killall "Visual Studio Code" 2>/dev/null || true
    killall "Code Helper" 2>/dev/null || true
    rm -rf "$HOME/Library/Application Support/Code/Service Worker" \
           "$HOME/Library/Application Support/Code/Cache" \
           "$HOME/Library/Application Support/Code/Code Cache" \
           "$HOME/Library/Application Support/Code/GPUCache" \
           "$HOME/Library/Application Support/Code/User/workspaceStorage"
    code -n --disable-extensions --disable-gpu --verbose
    
    # LaunchServices DB 재빌드
    /System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister \
    -kill -r -domain local -domain system -domain user
    killall Finder
    
    # iCloud 동기화 프로세스 재시작
    killall bird
    killall cloudd

    ✍️ 마무리

    이 경험으로 “로컬 맥북을 self-hosted runner로 돌리는 게 얼마나 리스크가 큰지” 뼈저리게 느꼈습니다..🥹
    클라우드 VM이나 서버 환경을 runner로 쓰는 게 정신 건강에도, 생산성에도 훨씬 낫습니다..

    반응형
Designed by Tistory.