ACSD-68064: Entradas duplicadas criadas durante atualizações agendadas em ambientes com categorias profundamente aninhadas
O patch ACSD-68064 corrige o problema em que a criação de atualizações programadas em ambientes com um alto número de categorias aninhadas resulta em entradas duplicadas e impede o salvamento de categorias. Este patch está disponível quando o Quality Patches Tool (QPT) 1.1.72 está instalado. A ID do patch é ACSD-68064. 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.7-p6
Compatível com as versões do Adobe Commerce:
- Adobe Commerce (todos os métodos de implantação) 2.4.7 - 2.4.7-p7
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
A criação de atualizações agendadas em ambientes com um alto número de categorias aninhadas resulta em entradas duplicadas, resultando em erros e falha ao salvar a categoria.
Etapas a serem reproduzidas:
-
Instale uma instância limpa.
-
Modifique o arquivo de correções de desempenho (small.xml) para incluir:
- Categories: 2500
- Products: 250.000
-
Gere os dados usando o comando:
code language-none bin/magento setup:performance:generate-fixtures var/performance-toolkit/profiles/ce/small.xml -
Depois de criar produtos e categorias, verifique se todas as categorias estão definidas como âncoras executando a seguinte query:
code language-none UPDATE catalog_category_entity_int set value = 1 where attribute_id = (select attribute_id from eav_attribute where attribute_code = 'is_anchor'); -
Reindexe os dados.
-
Faça logon no painel Admin e navegue até Catalog > Categories.
-
Mova a Categoria 2 para a Categoria 1 para criar uma estrutura mais aninhada.
-
Ir para uma categoria profundamente aninhada, por exemplo, Categoria 2.1.1.
-
Criar um Scheduled Update.
-
Clique em Save.
Resultados esperados:
A categoria foi salva com sucesso.
Resultados reais:
Ocorre um erro e a categoria não é salva. var/log/exception.log contém um erro semelhante a:
Exception #0 (Magento\Framework\DB\Adapter\DuplicateException): SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '229-255' for key 'temp_category_descendants_619aaaaaaaaaa.PRIMARY', query was: INSERT INTO `temp_category_descendants_619aaaaaaaaaa` (`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, '/%') OR ce2.entity_id = ce.entity_id AND (ce2.created_in <= '1750287600' AND ce2.updated_in > '1750287600') WHERE ((ce.entity_id IN (4, 6, 7, 8, 10, 24, 25, 27, 30, 33, 34, 35, 36, 37, 40, 41, 42, 43, 44, 48, 51, 54, 56, 57, 59, 60, 63, 64, 65, 66, 67 .......
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:
- Quality Patches Tool: uma ferramenta de autoatendimento para patches de qualidade no guia Ferramentas.