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作為搜尋關鍵字,以尋找修補程式。問題
目錄許可權產品重新索引保持現有許可權索引列不變,因此更新的類別許可權授予無法在產品上正確反映。
要再現的步驟:
-
啟用類別許可權:
- 登入管理員。
- 前往Stores > Configuration。
- 在 Catalog 下,選取Catalog。
- 展開Category Permissions。
- 將 Enable 設為是。
- 儲存設定。
-
建立50個或更多客戶群組(選項A或選項B):
- 選項A — 管理員:移至Customers > Customer Groups並選取Add New。 輸入群組名稱(例如,
ACSD70034_01)並選取預設稅捐類別,然後選取Save。 重複建立50個或更多群組。 - 選項B (建議) — REST API:傳送POST要求給
/rest/V1/customerGroups,要求內文為{"group":{"code":"ACSD70034_01","taxClassId":0}}。 重複以建立50個群組(ACSD70034_01到ACSD70034_50)。
- 選項A — 管理員:移至Customers > Customer Groups並選取Add New。 輸入群組名稱(例如,
-
在「管理員」中新增類別許可權:
- 前往Catalog > Categories。
- 編輯10-20個或更多類別以提高可重複性。
- 在每個類別中,捲動至 Category Permissions 並選取Add Permission。
- 選取網站(例如「主要網站」),然後指派先前建立的其中一個客戶群組。
- 視需要設定Grant Catalog Category View、Grant Product Price和Grant Checkout。
- 選取Save。
- 建議的範圍:建立較大的資料集(例如20個類別和20-50個客戶群組)以產生400-1,000個許可權列。
-
確定單一索引表格(預設):
- 前往「Stores > Configuration > Catalog > Catalog > Category Permissions」。
- 如果出現 Dimensions 或Indexer Dimensions,請將其設定為無 (不是客戶群組)以使用單一索引表。
-
從CLI使用平行執行緒執行重新索引:
- 匯出
MAGE_INDEXER_THREADS_COUNT=4。 - 執行
php bin/magento indexer:reset catalogpermissions_category catalogpermissions_product。 - 執行
php bin/magento indexer:reindex catalogpermissions_category catalogpermissions_product。 - 重複重設和重新索引命令5-10次,在平行執行期間重新產生死結。
- 匯出
預期結果:
使用平行執行緒重新索引成功完成,而且更新的類別許可權授權在magento_catalogpermissions_index_product資料表中的產品上正確反映。
實際結果:
重新索引期間間歇性地發生MySQL死結錯誤(1213),子處理序失敗,錯誤參考magento_catalogpermissions_index_replica或magento_catalogpermissions_index_product上的REPLACE INTO。
即使重新索引完成且沒有錯誤,它也不會更新現有的許可權索引列,因此產品會繼續反映過時的類別許可權授予。
套用修補程式
若要套用個別修補程式,請根據您的部署方法使用下列連結:
- Adobe Commerce或Magento Open Source內部部署: Quality Patches Tool指南中的Quality Patches Tool >使用狀況。
- 雲端基礎結構上的Adobe Commerce:雲端基礎結構上的Commerce指南中的升級和修補程式>套用修補程式。
相關閱讀
若要進一步瞭解Quality Patches Tool,請參閱:
recommendation-more-help
commerce-operations-help-tools