[PaaS のみ]{class="badge informative" title="Adobe Commerce on Cloud プロジェクト(Adobeが管理する PaaS インフラストラクチャ)およびオンプレミスプロジェクトにのみ適用されます。"}

ACSD-68206: レート制限と PHP Redis 拡張 GraphQL 能でサーバーが失敗する

ACSD-68206 パッチは、レート制限機能と PHP Redis 拡張モジュールを使用する際に、GraphQL アプリケーションサーバがエラーをスローし、レート制限機能が動作しなくなる問題を修正します。 このパッチは、Quality Patches Tool (QPT) 1.1.73 がインストールされている場合に使用できます。 パッチ ID は ACSD-68206 です。 この問題はAdobe Commerce 2.4.9 で修正される予定であることに注意してください。

影響を受ける製品とバージョン

Adobe Commerce バージョン用のパッチが作成されます。

  • Adobe Commerce(すべてのデプロイメント方法) 2.4.8-p2

Adobe Commerce バージョンとの互換性:

  • Adobe Commerce(すべてのデプロイメント方法) 2.4.7 ~ 2.4.8-p3
NOTE
このパッチは、新しい Quality Patches Tool リリースを含む他のバージョンにも適用される可能性があります。 パッチがAdobe Commerceのバージョンと互換性があるかどうかを確認するには、magento/quality-patches パッケージを最新バージョンに更新し、Quality Patches Tool: Search for patches page で互換性を確認します。 パッチ ID を検索キーワードとして使用して、パッチを見つけます。

問題

この問題は、GraphQL アプリケーションサーバーが PHP Redis 拡張機能がインストールされた状態で、レート制限機能を使用した場合に発生し、レート制限機能が動作しません。

再現手順 :

  1. PHP Redis 拡張機能をインストールします。
  2. アプリケーション用に Redis を設定します。
  3. レート・リミッターを設定して、1 分ごとに顧客ごとに 1 つの注文を許可します。
  4. GraphQL アプリケーションサーバーを起動します。
  5. お客様は、PlaceOrder GraphQL のミューテーションを使用して注文を送信します。
  6. 1 分以内に、同じ顧客に対して PlaceOrder GraphQL のミューテーションを使用して 2 回目の注文を送信します。

期待される結果 :

PlaceOrder GraphQL リクエストは、注文の試行を制限するメッセージを返します。

実際の結果 :

サーバーは 2 番目の PlaceOrder GraphQL リクエストに対して 500 エラーを返します。 例外ログの記録は次のとおりです。

report.CRITICAL: Error: Call to a member function exec() on null in vendor/colinmollenhour/credis/Client.php:1336

パッチの適用

個々のパッチを適用するには、デプロイメント方法に応じて、次のリンクを使用します。

  • Adobe CommerceまたはMagento Open Source オンプレミス:Quality Patches Tool > 使用状況 ​ Quality Patches Tool ガイドに記載されています。
  • クラウドインフラストラクチャー上のAdobe Commerce:クラウドインフラストラクチャー上のCommerce ガイドの ​ アップグレードとパッチ ​/ パッチの適用」を参照してください。

関連資料

Quality Patches Tool について詳しくは、以下を参照してください。

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