Application Servers & Java

[장애 사례] Infinispan CacheException - StateTransferManager wait 오류

midworker 2025. 5. 15. 18:56
반응형

[장애 사례] Infinispan CacheException - StateTransferManager wait 오류

JBoss/WildFly 서버 기동 시 다음과 같은 Infinispan 캐시 관련 예외가 발생하며
서버가 정상 기동되지 않거나, 세션 클러스터링이 실패하는 문제가 발생할 수 있습니다.


✅ 에러 메시지 요약

org.infinispan.CacheException:
Unable to invoke method public void
org.infinispan.statetransfer.StateTransferManagerImpl.waitForInitialStateTransferToComplete()

✅ 원인 분석

이 오류는 Infinispan 캐시 클러스터 구성 중,
상태 전이(State Transfer) 단계가 완료되지 못했을 때 발생합니다.

항목 설명
상태 전이 클러스터 노드 간 데이터 복제 및 캐시 동기화 과정
문제 발생 조건 초기화 중 중단, 시간 초과, 통신 실패 등
동작 위치 StateTransferManagerImpl.waitForInitialStateTransferToComplete() 호출 시점

✅ 주요 발생 시나리오

  • 클러스터에 새 노드가 합류하는 과정에서 state transfer 실패
  • 네트워크 지연 또는 멀티캐스트 비활성화
  • 노드 간 JGroups 통신 실패
  • 세션 클러스터링 모듈이 정상 구동되지 않음

✅ 조치 방안

✔ 1. 서버 로그 확인 (클러스터 전체)

  • server.log에서 다음 키워드 검색
Infinispan, state transfer, cluster join, jgroups
  • 통신 차단 또는 응답 지연 여부 확인

✔ 2. JGroups 멀티캐스트 확인

tcpdump -i <interface> multicast

또는 구성 파일에서 IP 바인딩 확인:

<socket-binding name="jgroups-udp"
    multicast-address="230.0.0.4"
    multicast-port="45688" />
  • 방화벽, 보안 정책 등으로 멀티캐스트가 차단되지 않았는지 확인

✔ 3. 캐시 설정에서 state transfer 타임아웃 조정

<distributed-cache name="web-session" mode="ASYNC">
  <state-transfer timeout="30000"/>
</distributed-cache>

→ 타임아웃 시간 조정 (timeout 또는 await-initial-transfer 설정 가능)


✔ 4. 필요 시 클러스터 캐시 비활성화 (임시 조치)

<distributable>
  <infinispan-session-management enabled="false"/>
</distributable>

장애 긴급 대응 시 캐시 클러스터 기능 비활성화 후 단일 노드로 우선 운영


✅ 마무리

org.infinispan.CacheException은 대부분 노드 간 통신 지연 또는 클러스터 설정 오류로 인해 발생합니다.
상태 전이 단계는 캐시 일관성을 위한 중요한 초기화 작업이므로,
멀티캐스트 통신 설정, 노드 가용성, 타임아웃 정책 등을 꼼꼼히 점검해야 합니다.


반응형