Skip to content

fix: sql-gen-mcp 중복 등록 충돌 및 설치 JAR 버전 인식 버그 수정 - #5

Draft
zaruous wants to merge 1 commit into
masterfrom
claude/sql-gen-mcp-config-jar-version-6jxse2
Draft

fix: sql-gen-mcp 중복 등록 충돌 및 설치 JAR 버전 인식 버그 수정#5
zaruous wants to merge 1 commit into
masterfrom
claude/sql-gen-mcp-config-jar-version-6jxse2

Conversation

@zaruous

@zaruous zaruous commented Aug 11, 2026

Copy link
Copy Markdown
Owner

문제

  1. 같은 sql-gen-mcp 서비스를 두 개 등록하면 설정이 충돌

    • 두 서비스가 동일한 기본 installDir(~/llm-services/sql-gen-mcp)을 갖고, PID 파일이 <installDir>/.llm-manager.pid 하나로 공유됨
    • 첫 번째 서비스가 실행 중일 때 두 번째를 시작하면 restoreFromPidFile()이 첫 번째 프로세스의 PID를 읽어 자기 것으로 오인 → 두 번째 서비스가 실제로 기동되지 않음
    • 한쪽을 중지하면 다른 쪽의 PID 파일이 삭제되고, 제거 시 디렉토리 삭제로 다른 서비스도 파괴됨
  2. 설치 시 선택한 JAR 파일의 버전을 인식하지 못함

    • handleJarInstall()이 사용자가 선택한 JAR을 복사만 하고, startCommand는 여전히 YAML에 등록된 sql-gen-mcp-1.0.0-SNAPSHOT.jar를 바라봄
    • 버전이 다른 JAR(예: sql-gen-mcp-1.1.0.jar)을 선택하면 isInstalled()·서비스 시작이 옛 파일명을 찾아 실패
    • 추가로 sql-gen-mcp.yml의 groovyScript가 수정 다이얼로그 재실행 시마다 startCommand를 하드코딩 값으로 되돌림

수정 내용

파일 변경
PidFileManager.java PID 파일명을 서비스 ID별로 분리: .llm-manager-<serviceId>.pid. 구버전 파일명(.llm-manager.pid)은 업그레이드 직후 읽기 fallback으로만 지원하고 write/delete 시 정리
MainController.java ① builtin 서비스 추가 시 기존 서비스와 installDir이 겹치면 -2, -3… 접미사를 붙인 경로를 기본값으로 제안 (ensureUniqueInstallDir) ② JAR 설치 완료 시 선택한 파일명으로 startCommand-jar 토큰을 교체하고 registry에 저장 (withJarFileName)
service-packs/sql-gen-mcp.yml groovyScript가 startCommand를 비어 있을 때만 설정 — 설치 시 갱신된 JAR 파일명을 수정 다이얼로그가 덮어쓰지 않도록
CLAUDE.md 변경 기록 추가

검증

  • 수정한 두 Java 파일을 javac로 컴파일 검증 완료, YAML 파싱 검증 완료
  • ⚠️ 참고: 현재 master 브랜치는 이 PR과 무관하게 컴파일이 깨져 있습니다. feature/wiki-vector-mcp 머지(6bb2018) 시 WikiPreprocessor, WikiIndexStatusDialog 클래스가 커밋에서 누락된 것으로 보입니다 (WikiChunker·WikiIndexService·SettingsDialog가 참조하지만 어느 브랜치에도 존재하지 않음). 해당 파일 커밋이 필요합니다.

🤖 Generated with Claude Code

https://claude.ai/code/session_018dL3BSb81ndnMKkDHDgALh


Generated by Claude Code

- PID 파일을 서비스 ID별로 분리해 installDir 공유 시 상호 간섭 제거
  (.llm-manager.pid → .llm-manager-<serviceId>.pid, 구버전은 읽기 fallback)
- builtin 서비스 중복 등록 시 기본 설치 경로에 -2, -3… 접미사 자동 부여
- JAR 설치 시 선택한 파일명으로 startCommand의 -jar 토큰을 갱신해 저장
  — 버전이 다른 JAR을 선택해도 설치/시작이 옛 파일명을 바라보던 문제 해결
- sql-gen-mcp.yml groovy: startCommand 비어 있을 때만 기본값 설정
  (수정 다이얼로그의 스크립트 재실행이 설치된 JAR 이름을 덮어쓰지 않도록)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018dL3BSb81ndnMKkDHDgALh
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants