From b4b1868a0047890ada2c8b39c3a932ae51255714 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 --- 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 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