ECS:使用生命週期原則 (沒有前置詞) 在儲存器上提出或取得或刪除要求會傳回 500 個錯誤
Summary: 建立生命週期原則後,無法在儲存器上寫入、讀取或刪除物件,無須偏好 ()
This article applies to
This article does not apply to
This article is not tied to any specific product.
Not all product versions are identified in this article.
Symptoms
在儲存器上建立生命週期原則 (沒有前置詞) 後,GET 或 PUT 或 DELETE 物件要求傳回 500 個內部錯誤。清單儲存器運作正常。
在 dataheadsvc.log 中,檢查物件 xxx (前置詞為 null) 的現有原則會顯示此問題。
在 dataheadsvc.log 中,檢查物件 xxx (前置詞為 null) 的現有原則會顯示此問題。
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
Cause
對於 AWS,每個規則都有具有兒童元素的元素:、、為必填 XML 元素,,為選用專案 (適用于儲存器中的所有物件)。
針對 ECS,我們僅支援篩選,而且沒有在要求 XML 時設計元素。不需要參數,但某些地方代碼會直接使用前置詞值 (null 點),造成此處的問題。
針對 ECS,我們僅支援篩選,而且沒有在要求 XML 時設計元素。不需要參數,但某些地方代碼會直接使用前置詞值 (null 點),造成此處的問題。
Resolution
如果在「問題」欄位中看到類似顯示的錯誤記錄,請確認儲存器上是否已設定生命週期,並且沒有設定前置詞。請參閱 《ECS 資料存取指南》, 以進一步參考使用 s3curl.pl。
# ./s3curl.pl --id=test -- HTTP://:9020//?lifecycle |xmllint --format -
# ./s3curl.pl --id=test -- HTTP://:9020//?lifecycle |xmllint --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.Affected Products
ECS Appliance Hardware Gen1 U-SeriesProducts
ECS Appliance Hardware Gen1 U-Series, ECS Appliance Software with Encryption, ECS Appliance Software without Encryption, Elastic Cloud StorageArticle Properties
Article Number: 000057163
Article Type: Solution
Last Modified: 09 Feb 2023
Version: 3
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.