OSGi 번들 활성화 충돌로 인해 스테이지에 배포하는 동안 AEM Cloud Manager 파이프라인이 중단됨
이 문서에서는 스테이지로 배포 단계 중에 Adobe Experience Manager(AEM) Cloud Manager 파이프라인이 중단되어 OSGi 번들 활성화 충돌로 인해 사용할 수 없는 인스턴스가 발생하고 클래스 오류가 발생하는 문제를 해결하는 방법에 대해 설명합니다.
설명 description
환경
Adobe Experience Manager(AEM) as a Cloud Service(AEMaaCS)(모든 버전)
증상
- Cloud Manager 파이프라인 실행은 눈에 보이는 오류나 진행률 없이 오랜 기간(1시간 이상) 동안 스테이지로 배포 단계에서 정지된 상태로 유지됩니다.
- 배포 후 영향을 받는 환경을 사용할 수 없게 됩니다.
- 영향을 받는 인스턴스에 액세스하려고 하면 로그인 페이지가 비어 있습니다.
- 로그에 누락된 클래스 오류,
/libs/granite/core/content/login.html에 대한 HTTP 500 또는 404 응답 및 상태 검사 오류가 표시됩니다. - AEM을 다시 시작해도 문제가 해결되지 않습니다. 다시 시작한 후에도 오류가 지속됩니다.
- 이 문제는 인스턴스의 하위 집합에만 영향을 줄 수 있으며, 이는 타이밍 또는 경합 조건을 나타냅니다.
원인
배포가 기본 공유 라이브러리를 업데이트하여 OSGi 프레임워크 새로 고침을 트리거했습니다. 사용자 지정 구성 요소의 활성화 방법은 이 새로 고침 중에 JCR(차단 저장소) 로그인을 수행하여 잠금 경합을 일으키고 종속 번들을 반시작 상태로 둡니다. 이로 인해 파이프라인 지연 및 영향을 받는 인스턴스를 사용할 수 없게 되었습니다.
해결 방법 resolution
아래 단계에 따라 문제를 해결하십시오.
-
영향을 받는 환경 식별:
-
Cloud Manager 파이프라인 실행 로그 및 AEM 인스턴스 로그에서 클래스 누락 오류 및 번들 활성화 오류를 검토합니다.
-
배포 후 사용할 수 없는 인스턴스를 확인합니다.
-
-
영향을 받는 환경 복원:
-
사용 가능한 환경 백업을 사용하여 영향을 받는 인스턴스를 알려진 양호한 상태로 복원합니다.
-
모든 인스턴스가 작동 상태로 돌아가고 로그인 페이지가 올바르게 로드되는지 확인합니다.
-
-
사용자 지정 OSGi 번들 활성화 논리를 검토합니다.
-
특히 활성화 중에 저장소(JCR) 로그인 또는 기타 차단 작업을 수행하는
onActivate()메서드를 사용하는 사용자 지정 OSGi 구성 요소를 검사합니다. -
활성화 논리를 리팩터링하여 OSGi 번들 활성화 중에 호출 또는 저장소 로그인이 차단되지 않도록 합니다. 이렇게 하면 프레임워크 새로 고침 중에 교착 상태나 정지가 발생할 수 있습니다.
-
활성화 방법에서 저장소 로그인 또는 장기 실행 작업이 직접 수행되는 코드 패턴을 찾습니다.
-
-
낮은 환경에서 배포 테스트:
- 프로덕션에 배포하기 전에 낮은 환경에서 동일한 패키지를 테스트하여 문제가 재발하지 않는지 확인하십시오.
-
향후 배포 모니터링:
- 유사한 지연이 발생하는 경우 추가 분석을 위해 로그 및 파이프라인 실행 세부 정보를 수집합니다.
확인:
- 영향을 받는 모든 인스턴스가 작동하고 복원 및 코드 변경 후 로그인 페이지가 예상대로 로드되는지 확인합니다.