MDVA-31590:無法使用MySQL非同步佇列大量更新屬性

MDVA-31590修補程式解決使用者無法使用MySQL非同步佇列大量更新屬性的問題。 安裝品質修補工具(QPT) 1.1.3時,即可使用此修補程式。 修補程式ID為MDVA-31590。 請注意,問題已在Adobe Commerce 2.4.2中修正。

受影響的產品和版本

已為Adobe Commerce版本建立修補程式:

  • Adobe Commerce (所有部署方法) 2.4.0

與Adobe Commerce版本相容:

  • Adobe Commerce (所有部署方法) 2.4.0-2.4.1-p1
NOTE
此修補程式可能適用於其他發行了「品質修補程式」工具的版本。 若要檢查修補程式是否與您的Adobe Commerce版本相容,請將magento/quality-patches套件更新至最新版本,並在Quality Patches Tool上檢查相容性:搜尋修補程式頁面。 使用修補程式ID作為搜尋關鍵字,以尋找修補程式。

問題

使用者無法使用MySQL非同步大量更新屬性。

要再現的步驟

  1. 在後端的產品格線上,執行大量動作以更新一些產品的屬性值。
    • 檢查產品,並從[動作]下拉式清單中選取​ 更新屬性
  2. 設定必要屬性的值,並將產品指派至網站並儲存。
  3. 頁面重新載入後,會顯示如下的訊息:
    任務「更新N個所選產品的屬性」:已排定1個專案進行更新。
  4. 等候幾秒鐘,然後重新載入後端頁面。

預期結果

  1. 頁面顯示成功的更新訊息,例如: 1個專案已成功更新。
  2. 相關產品的屬性值會更新。
  3. 在DB中,會在magento_bulk資料表和magento_operation資料表(與大量相關的作業)中建立新記錄。
  4. 已在queue_message資料表中建立新記錄(與佇列product_action_attribute.update和/或product_action_attribute.website.update相關)。
  5. queue_message_status資料表有狀態為「4」的記錄。
  6. system.log中沒有錯誤。

實際結果

  1. 頁面仍會顯示類似以下內容的訊息:
    任務「更新N個所選產品的屬性」:已排定1個專案進行更新。

  2. 產品的屬性值會更新。

  3. 已在message_bulk資料表中建立新記錄,但magento_operation資料表中沒有相關記錄。

  4. 已在queue_messagequeue_message_status資料表中建立新記錄。

  5. queue_message_status資料表有錯誤狀態的記錄(狀態值「6」)。

  6. system.log包含類似下列的錯誤:

    code language-sql
    *main.CRITICAL: Message has been rejected: SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'operation_key' cannot be null, query was: INSERT INTO {{magento_operation}} ({{id}}, {{bulk_uuid}}, {{topic_name}}, {{serialized_data}}, {{result_serialized_data}}, {{status}}, {{error_code}}, {{result_message}}, {{operation_key}}) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?) [] []*
    

套用修補程式

若要套用個別修補程式,請根據您的部署方法使用下列連結:

相關閱讀

若要進一步瞭解「品質修補程式」工具,請參閱:

如需QPT中其他修補程式的詳細資訊,請參閱QPT🔗中可用的修補程式區段。

recommendation-more-help
c2d96e17-5179-455c-ad3a-e1697bb4e8c3