ECS : Les demandes PUT, GET ou DELETE sur un bucket avec une règle de cycle de vie (sans préfixe) renvoient une erreur 500
摘要: Impossible d’écrire, de lire ou de supprimer des objets sur le bucket après la création d’une règle de cycle de vie sans préférence ()
本文章適用於
本文章不適用於
本文無關於任何特定產品。
本文未識別所有產品版本。
症狀
Après la création d’une règle de cycle de vie (sans préfixe) sur le bucket, les demandes d’objet GET, PUT ou DELETE renvoient une erreur interne de 500. List bucket fonctionne correctement.
La vérification de la politique existante pour l’objet xxx avec le préfixe null le montre dans dataheadsvc.log.
La vérification de la politique existante pour l’objet xxx avec le préfixe null le montre dans dataheadsvc.log.
2018-04-07T03:30:48,744 [qtp597531831-21452-0a20a979:162908dae63:2fef:17-s3-xx.xx.xx.xx] INFO ObjectExpirationUtil.java (line 33) Checking existing policy for object testfile1 with prefix null
2018-04-07T03:30:48,745 [qtp597531831-21452-0a20a979:162908dae63:2fef:17-s3-xx.xx.xx.xx] ERROR GeneralExceptionMapper.java (line 37) internal error
java.lang.NullPointerException
at java.lang.String.startsWith(String.java:1405)
at java.lang.String.startsWith(String.java:1434)
at com.emc.storageos.data.object.expiration.ObjectExpirationUtil.getObjectExpirationDetails(ObjectExpirationUtil.java:42)
at com.emc.storageos.data.object.RESTAccess.DataAccessLayer.getObjectInfo(DataAccessLayer.java:870)
at com.emc.storageos.data.api.service.impl.resource.s3.operation.S3ObjectOperations.getObject(S3ObjectOperations.java:926)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
... ...
2018-04-07T03:30:48,751 [qtp597531831-21452] INFO RequestLog.java (line 83) xx.xx.xx.xxx GET //xx.xx.xx.xx:9020/test/testfile1 HTTP/1.1 500 9 - 111
原因
Pour AWS, chaque règle a élément qui contient l’élément enfants : , , est l’élément XML requis, et est facultatif (s’applique à tous les objets des buckets).
Pour ECS, nous prenons uniquement en charge le filtre et n’avons pas élément conçu dans la demande XML. n’est pas un paramètre obligatoire, mais certains codes de lieu utilisent la valeur de préfixe directement (point null) qui provoque le problème ici.
Pour ECS, nous prenons uniquement en charge le filtre et n’avons pas élément conçu dans la demande XML. n’est pas un paramètre obligatoire, mais certains codes de lieu utilisent la valeur de préfixe directement (point null) qui provoque le problème ici.
解析度
Si le journal d’erreurs s’affiche dans le champ « Issue », vérifiez si le cycle de vie est défini sur le bucket et qu’aucun préfixe n’est configuré. Reportez-vous au Guide d’accès aux données ECS pour plus d’informations sur l’utilisation de s3curl.pl.
# ./s3curl.pl --id=test -- http:// :9020// ?lifecycle |xmlarnt --format -
# ./s3curl.pl --id=test -- http:// :9020// ?lifecycle |xmlarnt --format -
# ./s3curl.pl --id=test -- http://:9020//?lifecycle |xmllint --format -
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 285 100 285 0 0 23538 0 --:--:-- --:--:-- --:--:-- 23750
Enabled
10
If you confirm that hit this issue, the workaround prior to 3.2 is to add in lifecycle.
This issue is fixed in 3.2.
Workaround:
1. Get current lifecycle setting and save to local file
# ./s3curl.pl --id=test -- http://:9020//?lifecycle -o lifecycle.xml
# ./s3curl.pl --id=test -- http://:9020//?lifecycle -o lifecycle.xml
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 268 100 268 0 0 11926 0 --:--:-- --:--:-- --:--:-- 12181
2. Modify the lifecycle.xml and add prefix
# vi lifecycle.xml
-->add this line
Enabled
10
3. Update lifecycle
# ./s3curl.pl --id=test --put=lifecycle.xml http://xx.xx.xx.xx:9020//?lifecycle --calculateContentMd5 --debug
# ./s3curl.pl --id=test --put=lifecycle.xml http://xx.xx.xx.xx:9020/fog-bbr-backup/?lifecycle --calculateContentMd5 --debug s3curl: Found the url: host=xx.xx.xx.xx; port=9020; uri=/fog-bbr-backup/; query=lifecycle; s3curl: replaced string: lifecycle s3curl: ordinary endpoint signing case s3curl: StringToSign='PUT\na4EIw7LnRPKpiAfSy/YHIQ==\n\nSat, 07 Apr 2018 05:11:32 +0000\n/fog-bbr-backup/?lifecycle' s3curl: exec curl -v -H 'Date: Sat, 07 Apr 2018 05:11:32 +0000' -H 'Authorization: AWS pcf-fog-sys:4NFcmpx/3i0FBoJsFUJSabAlmGI=' -L -H 'content-type: ' -H 'Content-MD5: a4EIw7LnRPKpiAfSy/YHIQ==' -T lifecycle.xml http://xx.xx.xx.xx:9020/fog-bbr-backup/?lifecycle * Hostname was NOT found in DNS cache * Trying xx.xx.xx.xx... * Connected to xx.xx.xx.xx (xx.xx.xx.xx) port 9020 (#0) > PUT /fog-bbr-backup/?lifecycle HTTP/1.1 > User-Agent: curl/7.37.0 > Host: xx.xx.xx.xx:9020 > Accept: */* > Date: Sat, 07 Apr 2018 05:11:32 +0000 > Authorization: AWS pcf-fog-sys:4NFcmpx/3i0FBoJsFUJSabAlmGI= > Content-MD5: a4EIw7LnRPKpiAfSy/YHIQ== > Content-Length: 284 > Expect: 100-continue > < HTTP/1.1 100 Continue * We are completely uploaded and fine < HTTP/1.1 200 OK < Date: Sat, 07 Apr 2018 05:11:32 GMT * Server ViPR/1.0 is not blacklisted < Server: ViPR/1.0 < x-amz-request-id: 0a23a338:1628835dec8:5cb3:19 < x-amz-id-2: a52c5da7cb5555375cef4f9172b03532652afc6cf67528d42451b0a3a20aad4a < Content-Length: 0 < * Connection #0 to host xx.xx.xx.xx left intact 4. Confirm lifecycle is updated. # ./s3curl.pl --id=test -- http://xx.xx.xx.xx:9020//?lifecycle |xmllint --format -
# ./s3curl.pl --id=test -- http://xx.xx.xx.xx:9020/fog-bbr-backup/?lifecycle |xmllint --format -
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 285 100 285 0 0 23538 0 --:--:-- --:--:-- --:--:-- 23750
Enabled
10
5. Retry read/write/delete.受影響的產品
ECS Appliance Hardware Gen1 U-Series產品
ECS Appliance Hardware Gen1 U-Series, ECS Appliance Software with Encryption, ECS Appliance Software without Encryption, Elastic Cloud Storage文章屬性
文章編號: 000057163
文章類型: Solution
上次修改時間: 09 2月 2023
版本: 3
向其他 Dell 使用者尋求您問題的答案
支援服務
檢查您的裝置是否在支援服務的涵蓋範圍內。