ACSD-67643: Entradas duplicadas criadas durante atualizações agendadas em ambientes de categoria altamente aninhados
O patch ACSD-67643 corrige o problema em que entradas duplicadas são criadas durante atualizações programadas em ambientes com um alto número de categorias aninhadas. Este patch está disponível quando o Quality Patches Tool (QPT) 1.1.71 está instalado. A ID do patch é ACSD-67643. Observe que esse problema está programado para ser corrigido no Adobe Commerce 2.4.9.
Produtos e versões afetados
O patch foi criado para a versão do Adobe Commerce:
- Adobe Commerce (todos os métodos de implantação) 2.4.8-p1
Compatível com as versões do Adobe Commerce:
- Adobe Commerce (todos os métodos de implantação) 2.4.8 - 2.4.8-p2
magento/quality-patches para a versão mais recente e verifique a compatibilidade na Quality Patches Tool: página Procurar patches. Use a ID do patch como palavra-chave de pesquisa para localizar o patch.Problema
Entradas duplicadas ocorrem ao criar atualizações agendadas para ambientes que têm um grande número de categorias aninhadas.
Etapas a serem reproduzidas:
-
Gerar dados de exemplo:
Usar um arquivo de ajustes de desempenho (Por exemplo:small.xml) com modificações:
Categories: 2.500
Products: 250.000 -
Execute o seguinte comando:
code language-bash bin/magento setup:performance:generate-fixtures var/performance-toolkit/profiles/ce/small.xml -
Depois de criar produtos e categorias, verifique se todas as categorias são âncoras executando:
code language-sql UPDATE catalog_category_entity_int SET value = 1 WHERE attribute_id = (SELECT attribute_id FROM eav_attribute WHERE attribute_code = 'is_anchor'); -
Executar uma reindexação completa.
-
Faça logon no back-end e abra a página Categories.
-
Mover Categoria 2 para Categoria 1 para aumentar o aninhamento de árvore.
-
Ir para a categoria mais aninhada (Por exemplo: Categoria 2.1.1).
-
Crie uma Atualização agendada e salve a categoria.
Resultados esperados:
A categoria foi salva com sucesso.
Resultados reais:
Ocorre um Erro 500, e a seguinte mensagem é exibida nos logs:
Magento\Framework\DB\Adapter\DuplicateException:
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '6-165' for key 'PRIMARY',
query was: INSERT INTO `temp_category_descendants_68a35aea273fc` (`category_id`, `descendant_id`)
SELECT `ce`.`entity_id` AS `category_id`, `ce2`.`entity_id` AS `descendant_id`
FROM `catalog_category_entity` AS `ce`
INNER JOIN `catalog_category_entity` AS `ce2` ON ce2.path LIKE CONCAT(ce.path, '/%')
Aplicar o patch
Para aplicar patches individuais, use os links a seguir, dependendo do método de implantação:
- Adobe Commerce ou Magento Open Source local: Quality Patches Tool > Uso no guia Quality Patches Tool
- Adobe Commerce na infraestrutura em nuvem: Atualizações e patches > Aplicar patches no guia do Commerce na infraestrutura em nuvem
Leitura relacionada
Para saber mais sobre Quality Patches Tool, consulte: