ACP2E-4603: Omindexering av produkt för katalogbehörighet lämnar inaktuella behörighetsindexrader och MySQL-dödläge

Korrigeringen för ACP2E-4603 åtgärdar ett problem där omindexering av produkter för katalogbehörighet lämnar befintliga behörighetsindexrader oförändrade, så uppdaterade kategoribehörighetstilldelningar inte återspeglar produkter korrekt. Den här korrigeringen är tillgänglig när Quality Patches Tool (QPT) 1.1.79 har installerats. Korrigerings-ID är ACP2E-4603. Observera att problemet är planerat att åtgärdas i Adobe Commerce 2.4.9.

Berörda produkter och versioner

Korrigeringen har skapats för Adobe Commerce-version:

  • Adobe Commerce (alla distributionsmetoder) 2.4.7-p3

Kompatibel med Adobe Commerce-versioner:

  • Adobe Commerce (alla distributionsmetoder) 2.4.6 - 2.4.7-p9
NOTE
Korrigeringen kan bli tillämplig för andra versioner med nya Quality Patches Tool-versioner. Om du vill kontrollera om korrigeringen är kompatibel med din Adobe Commerce-version uppdaterar du paketet magento/quality-patches till den senaste versionen och kontrollerar kompatibiliteten för Quality Patches Tool: Sök efter sidan med korrigeringsfiler ​. Använd patch-ID:t som söknyckelord för att hitta patchen.

Problem

Omindexering av produkt för katalogbehörighet lämnar befintliga behörighetsindexrader oförändrade, så uppdaterade kategoribehörighetstilldelningar speglar inte produkter korrekt.

Steg som ska återskapas:

  1. Aktivera kategoribehörigheter:

    1. Logga in på Admin.
    2. Gå till Stores > Configuration.
    3. Välj Catalog under Catalog.
    4. Expandera Category Permissions.
    5. Ange Enable som Ja.
    6. Spara konfigurationen.
  2. Skapa minst 50 kundgrupper (alternativ A eller alternativ B):

    1. Alternativ A - Admin: Gå till Customers > Customer Groups och välj Add New. Ange ett gruppnamn (till exempel ACSD70034_01) och välj standardmomsklassen och sedan Save. Upprepa om du vill skapa 50 eller fler grupper.
    2. Alternativ B (rekommenderas) - REST API: Skicka en POST-begäran till /rest/V1/customerGroups med begärandetexten {"group":{"code":"ACSD70034_01","taxClassId":0}}. Upprepa för att skapa 50 grupper (ACSD70034_01 till ACSD70034_50).
  3. Lägg till kategoribehörigheter i Admin:

    1. Gå till Catalog > Categories.
    2. Redigera 10-20 eller fler kategorier för att öka reproducerbarheten.
    3. Bläddra till Category Permissions i varje kategori och välj Add Permission.
    4. Välj en webbplats (till exempel Huvudwebbplats) och tilldela en av de kundgrupper som skapats tidigare.
    5. Konfigurera Grant Catalog Category View, Grant Product Price och Grant Checkout efter behov.
    6. Välj Save.
    7. Rekommenderad skala: Skapa en större datauppsättning (till exempel 20 kategorier och 20-50 kundgrupper) för att generera 400-1 000 behörighetsrader.
  4. Se till att det finns en enda indextabell (standard):

    1. Gå till Stores > Configuration > Catalog > Catalog > Category Permissions.
    2. Om Dimensions eller Indexer Dimensions visas anger du det till Ingen (inte kundgrupp) så att en enda indextabell används.
  5. Kör omindexering med parallella trådar från CLI:

    1. Exportera MAGE_INDEXER_THREADS_COUNT=4.
    2. Kör php bin/magento indexer:reset catalogpermissions_category catalogpermissions_product.
    3. Kör php bin/magento indexer:reindex catalogpermissions_category catalogpermissions_product.
    4. Upprepa kommandona för återställning och indexering 5-10 gånger för att återskapa dödläget vid parallell körning.

Förväntade resultat:

Indexeringen har slutförts med parallella trådar och uppdaterade kategoribehörighetstilldelningar återspeglar korrekt produkter i tabellen magento_catalogpermissions_index_product.

Faktiska resultat:

Ett MySQL-deadlock-fel (1213) inträffar då och då under omindexeringen och underordnade processer misslyckas med fel som refererar till REPLACE INTOmagento_catalogpermissions_index_replica eller magento_catalogpermissions_index_product.

Även när omindexeringen slutförs utan fel uppdateras inte befintliga behörighetsindexrader, så produkterna fortsätter att återspegla inaktuella kategoribehörighetstilldelningar.

Tillämpa korrigeringen

Använd följande länkar beroende på distributionsmetod för att tillämpa enskilda korrigeringsfiler:

Relaterad läsning

Mer information om Quality Patches Tool finns i:

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