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 拡張機能がインストールされた状態で、レート制限機能を使用した場合に発生し、レート制限機能が動作しません。
再現手順 :
- PHP Redis 拡張機能をインストールします。
- アプリケーション用に Redis を設定します。
- レート・リミッターを設定して、1 分ごとに顧客ごとに 1 つの注文を許可します。
- GraphQL アプリケーションサーバーを起動します。
- お客様は、
PlaceOrderGraphQL のミューテーションを使用して注文を送信します。 - 1 分以内に、同じ顧客に対して
PlaceOrderGraphQL のミューテーションを使用して 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 について詳しくは、以下を参照してください。
- Quality Patches Tool: 『ツールガイド』にあるクオリティパッチ セルフサービスツール。
recommendation-more-help
c2d96e17-5179-455c-ad3a-e1697bb4e8c3