API ListObjectsまたはListObjectsV2を使用してS3バケット オブジェクトを一覧表示すると無限ループする
摘要: S3アプリケーションまたはs3cmdは、S3 API listobjectまたはlistobjectv2を使用してS3バケットからオブジェクトをクエリーします。まれに、dirCacheが存在するがリクエストを満たさない場合に、PowerScale OneFS s3が誤った結果を返します。リスト オブジェクトが無限ループにヒットするため、S3アプリケーションがハングします。 ...
本文适用于
本文不适用于
本文并非针对某种特定的产品。
本文并非包含所有产品版本。
症状
バケットのリストを完了できないため、S3アプリケーションがハングします。
S3cmd lsバケットは、ページ分割されたリストで返されるのと同じオブジェクトを繰り返し取得します。
S3cmd lsバケットは、ページ分割されたリストで返されるのと同じオブジェクトを繰り返し取得します。
原因
これは、s3キャッシュのバグ# PSCALE-217613に影響する可能性があります。
クライアントが最大エントリ = 1000 の ListObjects を要求した場合、内部的には 10,000 エントリ (ディレクトリが非常に広い場合) を取得し、そのうちの 1000 をクライアントに返し、残りの 9000 を将来の要求のために再利用します。次のリクエストで、キャッシュがあり、ディレクトリの下にまだクライアントに返されていないファイルがまだあり、現在のキャッシュにリクエストを満たすのに十分なエントリがない場合、バグが発生し、間違った結果が返されます。
解决方案
エンジニアリング チームは恒久的な修正に取り組んでおり、準備が整い次第、RUPパッチがリリースされる予定です。
現在の回避策は、s3 ls DIR_CACHE_TTLを一時的に0に設定することです。
現在の回避策は、s3 ls DIR_CACHE_TTLを一時的に0に設定することです。
# isi_for_array -X "/usr/likewise/bin/lwsm inject s3 s3_ls_set_dir_cache_ttl on 0"
S3プロセスが再起動した場合、またはノードが再起動した場合は、S3の再起動時にデフォルトの1時間に戻ったため、ノードに回避策を再度適用してください。
手動をオフにするには DIR_CACHE_TTL:
#isi_for_array -X "/usr/likewise/bin/lwsm inject s3 s3_ls_set_dir_cache_ttl off"
受影响的产品
Isilon, PowerScale文章属性
文章编号: 000223936
文章类型: Solution
上次修改时间: 11 6月 2024
版本: 3
从其他戴尔用户那里查找问题的答案
支持服务
检查您的设备是否在支持服务涵盖的范围内。