From: Oguzhan Ozmen Date: Tue, 13 Feb 2024 16:40:38 +0000 (-0500) Subject: rgw/http/client-side: disable curl path normalization X-Git-Tag: v20.0.0~2549^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=b4b1868a0047890ada2c8b39c3a932ae51255714;p=ceph.git 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 --- diff --git a/src/rgw/rgw_http_client.cc b/src/rgw/rgw_http_client.cc index 587b33d0478..a1873586b01 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 3f5ae0fea5d..eed721ad59b 100644 --- a/src/test/rgw/rgw_multi/tests.py +++ b/src/test/rgw/rgw_multi/tests.py @@ -612,7 +612,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