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

아래 단계에 따라 문제를 해결하십시오.

  1. 영향을 받는 환경 식별:

    • Cloud Manager 파이프라인 실행 로그 및 AEM 인스턴스 로그에서 클래스 누락 오류 및 번들 활성화 오류를 검토합니다.

    • 배포 후 사용할 수 없는 인스턴스를 확인합니다.

  2. 영향을 받는 환경 복원:

    • 사용 가능한 환경 백업을 사용하여 영향을 받는 인스턴스를 알려진 양호한 상태로 복원합니다.

    • 모든 인스턴스가 작동 상태로 돌아가고 로그인 페이지가 올바르게 로드되는지 확인합니다.

  3. 사용자 지정 OSGi 번들 활성화 논리를 검토합니다.

    • 특히 활성화 중에 저장소(JCR) 로그인 또는 기타 차단 작업을 수행하는 onActivate() 메서드를 사용하는 사용자 지정 OSGi 구성 요소를 검사합니다.

    • 활성화 논리를 리팩터링하여 OSGi 번들 활성화 중에 호출 또는 저장소 로그인이 차단되지 않도록 합니다. 이렇게 하면 프레임워크 새로 고침 중에 교착 상태나 정지가 발생할 수 있습니다.

    • 활성화 방법에서 저장소 로그인 또는 장기 실행 작업이 직접 수행되는 코드 패턴을 찾습니다.

  4. 낮은 환경에서 배포 테스트:

    • 프로덕션에 배포하기 전에 낮은 환경에서 동일한 패키지를 테스트하여 문제가 재발하지 않는지 확인하십시오.
  5. 향후 배포 모니터링:

    • 유사한 지연이 발생하는 경우 추가 분석을 위해 로그 및 파이프라인 실행 세부 정보를 수집합니다.

확인:

  • 영향을 받는 모든 인스턴스가 작동하고 복원 및 코드 변경 후 로그인 페이지가 예상대로 로드되는지 확인합니다.
recommendation-more-help
experience-cloud-kcs-help-kbarticles