Bug #58552
test_rgw_datacache.py test if failing with Permission denied
0%
Description
2023-01-22T01:18:28.168 INFO:tasks.workunit.client.0.smithi106.stderr:DEBUG:root:exec_cmd(basename /tmp/rgw_datacache/4b3325c1-07ce-47a5-9a4a-7174a967fd6c.4665.1__shadow_.Q5xvGN4pXJuPNuCUOZk0gwkAYw0DwGe_0 2023-01-22T01:18:28.169 INFO:tasks.workunit.client.0.smithi106.stderr:/tmp/rgw_datacache/4b3325c1-07ce-47a5-9a4a-7174a967fd6c.4665.1__shadow_.Q5xvGN4pXJuPNuCUOZk0gwkAYw0DwGe_1) 2023-01-22T01:18:28.170 INFO:tasks.workunit.client.0.smithi106.stderr:ERROR:root:command failed 2023-01-22T01:18:28.170 INFO:tasks.workunit.client.0.smithi106.stderr:ERROR:root:error: b'/bin/sh: line 1: /tmp/rgw_datacache/4b3325c1-07ce-47a5-9a4a-7174a967fd6c.4665.1__shadow_.Q5xvGN4pXJuPNuCUOZk0gwkAYw0DwGe_1: Permission denied\n' 2023-01-22T01:18:28.170 INFO:tasks.workunit.client.0.smithi106.stderr:returncode: 126 2023-01-22T01:18:28.170 INFO:tasks.workunit.client.0.smithi106.stderr:Traceback (most recent call last): 2023-01-22T01:18:28.171 INFO:tasks.workunit.client.0.smithi106.stderr: File "/home/ubuntu/cephtest/clone.client.0/qa/workunits/rgw/test_rgw_datacache.py", line 210, in <module> 2023-01-22T01:18:28.171 INFO:tasks.workunit.client.0.smithi106.stderr: main() 2023-01-22T01:18:28.171 INFO:tasks.workunit.client.0.smithi106.stderr: File "/home/ubuntu/cephtest/clone.client.0/qa/workunits/rgw/test_rgw_datacache.py", line 193, in main 2023-01-22T01:18:28.171 INFO:tasks.workunit.client.0.smithi106.stderr: basename_cmd_out = get_cmd_output(out) 2023-01-22T01:18:28.172 INFO:tasks.workunit.client.0.smithi106.stderr: File "/home/ubuntu/cephtest/clone.client.0/qa/workunits/rgw/test_rgw_datacache.py", line 128, in get_cmd_output 2023-01-22T01:18:28.172 INFO:tasks.workunit.client.0.smithi106.stderr: out = cmd_out.decode('utf8') 2023-01-22T01:18:28.172 INFO:tasks.workunit.client.0.smithi106.stderr:AttributeError: 'bool' object has no attribute 'decode'
Related issues
History
#1 Updated by Casey Bodley 2 months ago
- Status changed from New to Triaged
- Assignee set to Mark Kogan
#2 Updated by Mark Kogan about 2 months ago
- Assignee deleted (
Mark Kogan)
The D3N cache test has failed inadvertently two cache object part files were found on the cache directory instead of one
either `...get_obj_iterate_cb(...)` https://github.com/ceph/ceph/blob/main/src/rgw/driver/rados/rgw_d3n_datacache.h#L167
int D3nRGWDataCache<T>::get_obj_iterate_cb(const DoutPrefixProvider *dpp, const rgw_raw_obj& read_obj, off_t obj_ofs, off_t read_ofs, off_t len, bool is_head_obj, RGWObjState *astate, void *arg) {
being called with a head object BUT the is_head_obj parameter is set to false instead of true
or in this test radosgw is configured not to store data in the head objects, hence two data objects were created?
(reviewing the confs in the log http://qa-proxy.ceph.com/teuthology/yuvalif-2023-01-21_18:18:43-rgw-wip-yuval-signed-comparisson-distro-default-smithi/7132933/teuthology.log , nothing obvious stuck out for me, could it be a side effect of `rgw crypt ...` confs?)
from this test log at: http://qa-proxy.ceph.com/teuthology/yuvalif-2023-01-21_18:18:43-rgw-wip-yuval-signed-comparisson-distro-default-smithi/7132933/remote/smithi106/log/rgw.ceph.client.0.log.gz
the test object is 7M in size, there should be only one callback with `3145728` size but in the log we see a 4M callbeck which should not be there
s3:get_obj get_obj_state: rctx=0x26081b10 obj=:datacachebucket[4b3325c1-07ce-47a5-9a4a-7174a967fd6c.4665.1]):7M.dat state=0x145ea7638 s->prefetch_data=1 s3:get_obj D3nDataCache::get_obj_iterate_cb(): oid=4b3325c1-07ce-47a5-9a4a-7174a967fd6c.4665.1__shadow_.Q5xvGN4pXJuPNuCUOZk0gwkAYw0DwGe_0, is_head_obj=0, obj-ofs=0, read_ofs=0, len=4194304 ^^^^^^^ this line should not appear as this is a head object allegedly and that is_head_obj=0 on a head object is abnormal s3:get_obj D3nDataCache: get_obj_iterate_cb(): WRITE TO CACHE: oid=4b3325c1-07ce-47a5-9a4a-7174a967fd6c.4665.1__shadow_.Q5xvGN4pXJuPNuCUOZk0gwkAYw0DwGe_0, obj-ofs=0, read_ofs=0 len=4194304 s3:get_obj RGWObjManifest::operator++(): rule->part_size=0 rules.size()=1 s3:get_obj RGWObjManifest::operator++(): result: ofs=4194304 stripe_ofs=4194304 part_ofs=0 rule->part_size=0 s3:get_obj D3nDataCache::get_obj_iterate_cb(): oid=4b3325c1-07ce-47a5-9a4a-7174a967fd6c.4665.1__shadow_.Q5xvGN4pXJuPNuCUOZk0gwkAYw0DwGe_1, is_head_obj=0, obj-ofs=4194304, read_ofs=0, len=3145728 s3:get_obj D3nDataCache: get_obj_iterate_cb(): WRITE TO CACHE: oid=4b3325c1-07ce-47a5-9a4a-7174a967fd6c.4665.1__shadow_.Q5xvGN4pXJuPNuCUOZk0gwkAYw0DwGe_1, obj-ofs=4194304, read_ofs=0 len=3145728 ^^^^^^^ only this log line should appear, it is tail object s3:get_obj RGWObjManifest::operator++(): rule->part_size=0 rules.size()=1 s3:get_obj RGWObjManifest::operator++(): result: ofs=7340032 stripe_ofs=7340032 part_ofs=0 rule->part_size=0
example from my system:
s3:get_obj get_obj_state: rctx=0x307aee0 obj=:bkt[6c451b30-9346-42fb-b0bb-7d0e29e6b4c6.4153.1]):7M.dat state=0x52bf1e8 s->prefetch_data=1 s3:get_obj D3nDataCache::get_obj_iterate_cb(): oid=6c451b30-9346-42fb-b0bb-7d0e29e6b4c6.4153.1__shadow_.DdxJ25l7jjX9S3IWTZO6NUFYjoZZ1Sc_1, is_head_obj=0, obj-ofs=4194304, read_ofs=0, len=3145728 s3:get_obj D3nDataCache: get_obj_iterate_cb(): WRITE TO CACHE: oid=6c451b30-9346-42fb-b0bb-7d0e29e6b4c6.4153.1__shadow_.DdxJ25l7jjX9S3IWTZO6NUFYjoZZ1Sc_1, obj-ofs=4194304, read_ofs=0 len=3145728 s3:get_obj RGWObjManifest::operator++(): rule->part_size=0 rules.size()=1 s3:get_obj RGWObjManifest::operator++(): result: ofs=7340032 stripe_ofs=7340032 part_ofs=0 rule->part_size=0
#3 Updated by Casey Bodley about 2 months ago
- Assignee set to Mark Kogan
#4 Updated by Casey Bodley about 2 months ago
- Priority changed from Normal to Urgent
#5 Updated by Mark Kogan about 2 months ago
- Pull request ID set to 50003
#6 Updated by Mark Kogan about 2 months ago
- Status changed from Triaged to Fix Under Review
#7 Updated by Casey Bodley 23 days ago
- Status changed from Fix Under Review to Pending Backport
- Backport set to reef
#8 Updated by Backport Bot 15 days ago
- Copied to Backport #59004: reef: test_rgw_datacache.py test if failing with Permission denied added
#9 Updated by Backport Bot 15 days ago
- Tags changed from d3n to d3n backport_processed