From dfcb2c71cbfb1a68d2f5185acce5454de10cc54d Mon Sep 17 00:00:00 2001 From: Oguzhan Ozmen Date: Tue, 13 Feb 2024 11:40:38 -0500 Subject: [PATCH] rgw/http/client-side: disable curl path normalization test_multi.py:test_object_sync is updated to reproduce the issue. Without the fix, objects "." and ".." are not replicated and the test fails (times out). Fixes: https://tracker.ceph.com/issues/64366 Signed-off-by: Oguzhan Ozmen (cherry picked from commit b4b1868a0047890ada2c8b39c3a932ae51255714) --- src/rgw/rgw_http_client.cc | 2 ++ src/test/rgw/rgw_multi/tests.py | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/rgw/rgw_http_client.cc b/src/rgw/rgw_http_client.cc index 587b33d04780..a1873586b013 100644 --- a/src/rgw/rgw_http_client.cc +++ b/src/rgw/rgw_http_client.cc @@ -591,6 +591,8 @@ int RGWHTTPClient::init_request(rgw_http_req_data *_req_data) curl_easy_setopt(easy_handle, CURLOPT_READFUNCTION, send_http_data); curl_easy_setopt(easy_handle, CURLOPT_READDATA, (void *)req_data); curl_easy_setopt(easy_handle, CURLOPT_BUFFERSIZE, cct->_conf->rgw_curl_buffersize); + curl_easy_setopt(easy_handle, CURLOPT_PATH_AS_IS, 1L); + if (send_data_hint || is_upload_request(method)) { curl_easy_setopt(easy_handle, CURLOPT_UPLOAD, 1L); } diff --git a/src/test/rgw/rgw_multi/tests.py b/src/test/rgw/rgw_multi/tests.py index 5e798fa14547..f0b36865ed1c 100644 --- a/src/test/rgw/rgw_multi/tests.py +++ b/src/test/rgw/rgw_multi/tests.py @@ -770,7 +770,8 @@ def test_object_sync(): zonegroup_conns = ZonegroupConns(zonegroup) buckets, zone_bucket = create_bucket_per_zone(zonegroup_conns) - objnames = [ 'myobj', '_myobj', ':', '&' ] + objnames = [ 'myobj', '_myobj', ':', '&', '.', '..', '...', '.o', '.o.'] + content = 'asdasd' # don't wait for meta sync just yet -- 2.47.3