From f6f1f313e63c1ff252a3ebf960ee94de0633a736 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 ffadd9f834d7..77501af7259b 100644 --- a/src/rgw/rgw_http_client.cc +++ b/src/rgw/rgw_http_client.cc @@ -590,6 +590,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 9e2517ad2373..292d3e53f2e3 100644 --- a/src/test/rgw/rgw_multi/tests.py +++ b/src/test/rgw/rgw_multi/tests.py @@ -610,7 +610,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