ACP2E-4603: 카탈로그 권한 제품 색인 재지정으로 인해 오래된 권한 인덱스 행과 MySQL 교착 상태가 남음

ACP2E-4603 패치는 카탈로그 권한 제품 리인덱싱이 기존 권한 인덱스 행을 변경하지 않고 그대로 두는 문제를 해결하므로 업데이트된 범주 권한 부여가 제품에 올바르게 반영되지 않습니다. 이 패치는 Quality Patches Tool (QPT) 1.1.79가 설치된 경우에 사용할 수 있습니다. 패치 ID는 ACP2E-4603입니다. 이 문제는 Adobe Commerce 2.4.9에서 수정됩니다.

영향을 받는 제품 및 버전

Adobe Commerce 버전에 대한 패치가 만들어졌습니다.

  • Adobe Commerce(모든 배포 방법) 2.4.7-p3

Adobe Commerce 버전과 호환:

  • Adobe Commerce(모든 배포 방법) 2.4.6 - 2.4.7-p9
NOTE
새 Quality Patches Tool 릴리스가 있는 다른 버전에 패치를 적용할 수 있습니다. 패치가 Adobe Commerce 버전과 호환되는지 확인하려면 magento/quality-patches 패키지를 최신 버전으로 업데이트하고 Quality Patches Tool에서 호환성을 확인합니다. 패치 검색 페이지. 패치 ID를 검색 키워드로 사용하여 패치를 찾습니다.

문제

카탈로그 권한 제품 리인덱싱은 기존 권한 인덱스 행을 변경하지 않으므로 업데이트된 범주 권한 부여가 제품에 올바르게 반영되지 않습니다.

재현 단계:

  1. 범주 권한 활성화:

    1. 관리자에 로그인합니다.
    2. Stores > Configuration(으)로 이동합니다.
    3. Catalog​에서 Catalog​을(를) 선택합니다.
    4. Category Permissions 확장.
    5. Enable​을(를) (으)로 설정합니다.
    6. 구성을 저장합니다.
  2. 50개 이상의 고객 그룹 생성(옵션 A 또는 옵션 B):

    1. 옵션 A — 관리자: Customers > Customer Groups(으)로 이동하여 Add New​을(를) 선택합니다. 그룹 이름(예: ACSD70034_01)을 입력하고 기본 세금 클래스를 선택한 다음 Save​을(를) 선택합니다. 50개 이상의 그룹을 생성하려면 를 반복합니다.
    2. 옵션 B(권장) — REST API: 요청 본문이 {"group":{"code":"ACSD70034_01","taxClassId":0}}/rest/V1/customerGroups에게 POST 요청을 보냅니다. 50개의 그룹(ACSD70034_01 ~ ACSD70034_50)을 만들려면 이 작업을 반복합니다.
  3. 관리자에서 범주 권한 추가:

    1. Catalog > Categories(으)로 이동합니다.
    2. 재현성을 높이려면 10~20개 이상의 범주를 편집하십시오.
    3. 각 범주에서 Category Permissions(으)로 스크롤하고 Add Permission​을(를) 선택합니다.
    4. 웹 사이트(예: 기본 웹 사이트)를 선택하고 이전에 만든 고객 그룹 중 하나를 지정합니다.
    5. 필요에 따라 Grant Catalog Category View, Grant Product PriceGrant Checkout​을(를) 구성합니다.
    6. Save​을(를) 선택합니다.
    7. 권장 크기 조절: 더 큰 데이터 집합(예: 20개 범주 및 20~50개 고객 그룹)을 만들어 400~1,000개의 권한 행을 생성합니다.
  4. 단일 인덱스 테이블(기본값)을 확인합니다.

    1. Stores > Configuration > Catalog > Catalog > Category Permissions(으)로 이동합니다.
    2. Dimensions 또는 Indexer Dimensions​이(가) 나타나면 단일 인덱스 테이블을 사용하려면 없음(고객 그룹​이 아님)으로 설정하십시오.
  5. CLI에서 병렬 스레드로 색인 재지정 실행:

    1. MAGE_INDEXER_THREADS_COUNT=4을(를) 내보냅니다.
    2. php bin/magento indexer:reset catalogpermissions_category catalogpermissions_product 실행.
    3. php bin/magento indexer:reindex catalogpermissions_category catalogpermissions_product 실행.
    4. 병렬 실행 중에 교착 상태를 재현하려면 reset 및 reindex 명령을 5-10번 반복합니다.

예상 결과:

색인 재지정이 병렬 스레드로 성공적으로 완료되고 업데이트된 범주 권한 부여가 magento_catalogpermissions_index_product 테이블의 제품에 올바르게 반영됩니다.

실제 결과:

다시 인덱싱하는 동안 MySQL 교착 상태 오류(1213)가 간헐적으로 발생하고 하위 프로세스가 실패하며 magento_catalogpermissions_index_replica 또는 magento_catalogpermissions_index_product에서 REPLACE INTO을(를) 참조하는 오류가 발생합니다.

색인 재지정이 오류 없이 완료되는 경우에도 기존 권한 인덱스 행을 업데이트하지 않으므로 제품은 부실 범주 권한 부여를 계속 반영합니다.

패치 적용

개별 패치를 적용하려면 배포 방법에 따라 다음 링크를 사용합니다.

관련 읽기

Quality Patches Tool에 대한 자세한 내용은 다음을 참조하세요.

recommendation-more-help
commerce-operations-help-tools