From c41382059402661f7b46a89b5137e7b4d9eec5eb Mon Sep 17 00:00:00 2001 From: Andrew Shao Date: Fri, 5 Apr 2024 01:07:41 +0000 Subject: [PATCH 01/15] Fix small pedantic mistakes --- src/cpp/rediscluster.cpp | 4 +++- src/cpp/threadpool.cpp | 3 +-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/cpp/rediscluster.cpp b/src/cpp/rediscluster.cpp index 0b2df126d..e00742b07 100644 --- a/src/cpp/rediscluster.cpp +++ b/src/cpp/rediscluster.cpp @@ -238,7 +238,7 @@ PipelineReply RedisCluster::run_via_unordered_pipelines(CommandList& cmd_list) volatile size_t pipeline_completion_count = 0; size_t num_shards = shard_cmd_index_list.size(); Exception error_response = Exception("no error"); - bool success_status[num_shards]; + std::vector success_status(num_shards, false); std::mutex results_mutex; // Loop over all shards and execute pipelines @@ -1552,3 +1552,5 @@ std::string RedisCluster::to_string() const result += RedisServer::to_string(); return result; } + + diff --git a/src/cpp/threadpool.cpp b/src/cpp/threadpool.cpp index e7912c717..643bfafcf 100644 --- a/src/cpp/threadpool.cpp +++ b/src/cpp/threadpool.cpp @@ -22,8 +22,7 @@ ThreadPool::ThreadPool(const SRObject* context, unsigned int num_threads) shutting_down = false; // By default, we'll make one thread for each hardware context - if (num_threads == 0) - num_threads = std::thread::hardware_concurrency(); + if (num_threads == 0) num_threads = std::thread::hardware_concurrency(); // Create worker threads if (num_threads < 1) num_threads = 1; // Force a minimum of 1 thread From c9409e71168c410e8d83e2b14083a0473606d85a Mon Sep 17 00:00:00 2001 From: Andrew Shao Date: Fri, 5 Apr 2024 01:10:03 +0000 Subject: [PATCH 02/15] Allow pedantic with Intel --- CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index e55e733eb..4b98f13b9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -54,8 +54,8 @@ endif() # If/when we fine-tune the examples and test cases, move this block # to smartredis_defs.cmake if (SR_PEDANTIC) - if((CMAKE_CXX_COMPILER_ID STREQUAL "GNU") AND (CMAKE_C_COMPILER_ID STREQUAL "GNU")) - add_compile_options(-Wall -Werror) + if((CMAKE_CXX_COMPILER_ID STREQUAL "GNU") OR (CMAKE_CXX_COMPILER_ID STREQUAL "INTEL")) + add_compile_options(-Wall -Werror -pedantic) else() message(WARNING "SR_PEDANTIC was specified, but the CMAKE compiler is not GCC") endif() From c21697ff5ef21ca1a752bbc15600fe8cbae789ee Mon Sep 17 00:00:00 2001 From: Andrew Shao Date: Fri, 5 Apr 2024 01:14:56 +0000 Subject: [PATCH 03/15] Add newlines at end --- include/addressallcommand.h | 2 +- include/addressanycommand.h | 3 ++- include/addressatcommand.h | 2 +- include/command.tcc | 2 +- include/scalarfield.h | 2 +- include/stringfield.h | 2 +- src/cpp/commandlist.cpp | 2 +- src/cpp/pipelinereply.cpp | 2 +- 8 files changed, 9 insertions(+), 8 deletions(-) diff --git a/include/addressallcommand.h b/include/addressallcommand.h index 734682d97..1d3cf4982 100644 --- a/include/addressallcommand.h +++ b/include/addressallcommand.h @@ -77,4 +77,4 @@ class AddressAllCommand : public NonKeyedCommand } // namespace SmartRedis -#endif // SMARTREDIS_ADDRRESSALLCOMMAND_H \ No newline at end of file +#endif // SMARTREDIS_ADDRRESSALLCOMMAND_H diff --git a/include/addressanycommand.h b/include/addressanycommand.h index 30ce9ece8..04f2734de 100644 --- a/include/addressanycommand.h +++ b/include/addressanycommand.h @@ -70,4 +70,5 @@ class AddressAnyCommand : public NonKeyedCommand } // namespace SmartRedis -#endif // SMARTREDIS_ADDRESSANYCOMMAND_H \ No newline at end of file +#endif // SMARTREDIS_ADDRESSANYCOMMAND_H +include/addressanycommand.h \ No newline at end of file diff --git a/include/addressatcommand.h b/include/addressatcommand.h index 4c8a763e4..a097e01b7 100644 --- a/include/addressatcommand.h +++ b/include/addressatcommand.h @@ -136,4 +136,4 @@ class AddressAtCommand : public NonKeyedCommand } // namespace SmartRedis -#endif // SMARTREDIS_ADDRESSATCOMMAND_H \ No newline at end of file +#endif // SMARTREDIS_ADDRESSATCOMMAND_H diff --git a/include/command.tcc b/include/command.tcc index c06f016a4..52f8544d7 100644 --- a/include/command.tcc +++ b/include/command.tcc @@ -45,4 +45,4 @@ void Command::add_keys(const std::vector& keyfields) } } -#endif // SMARTREDIS_COMMAND_TCC \ No newline at end of file +#endif // SMARTREDIS_COMMAND_TCC diff --git a/include/scalarfield.h b/include/scalarfield.h index 18bbeef1a..bc816a609 100644 --- a/include/scalarfield.h +++ b/include/scalarfield.h @@ -159,4 +159,4 @@ class ScalarField : public MetadataField { } // namespace SmartRedis -#endif // SMARTREDIS_SCALARFIELD_H \ No newline at end of file +#endif // SMARTREDIS_SCALARFIELD_H diff --git a/include/stringfield.h b/include/stringfield.h index eeba14d80..051b9cd07 100644 --- a/include/stringfield.h +++ b/include/stringfield.h @@ -150,4 +150,4 @@ class StringField : public MetadataField { } // namespace SmartRedis -#endif // SMARTREDIS_STRINGFIELD_H \ No newline at end of file +#endif // SMARTREDIS_STRINGFIELD_H diff --git a/src/cpp/commandlist.cpp b/src/cpp/commandlist.cpp index d33ee0f1b..add5474b2 100644 --- a/src/cpp/commandlist.cpp +++ b/src/cpp/commandlist.cpp @@ -117,4 +117,4 @@ CommandList::const_iterator CommandList::cend() size_t CommandList::size() { return _commands.size(); -} \ No newline at end of file +} diff --git a/src/cpp/pipelinereply.cpp b/src/cpp/pipelinereply.cpp index ab29ea1a8..7038631a5 100644 --- a/src/cpp/pipelinereply.cpp +++ b/src/cpp/pipelinereply.cpp @@ -110,4 +110,4 @@ void PipelineReply::_add_queuedreplies(QueuedReplies&& reply) for (size_t i = 0; i < n_replies; i++) { _all_replies.push_back(&(_queued_replies.back().get(i))); } -} \ No newline at end of file +} From 35d4611ed2eadc68018d1a22465161b1d3760ed9 Mon Sep 17 00:00:00 2001 From: Andrew Shao Date: Fri, 5 Apr 2024 17:51:04 +0000 Subject: [PATCH 04/15] Fix an unintentional paste --- include/addressanycommand.h | 1 - 1 file changed, 1 deletion(-) diff --git a/include/addressanycommand.h b/include/addressanycommand.h index 04f2734de..e9d1f27a7 100644 --- a/include/addressanycommand.h +++ b/include/addressanycommand.h @@ -71,4 +71,3 @@ class AddressAnyCommand : public NonKeyedCommand } // namespace SmartRedis #endif // SMARTREDIS_ADDRESSANYCOMMAND_H -include/addressanycommand.h \ No newline at end of file From 2959862870c3324dd876a11ee270c03993c6490c Mon Sep 17 00:00:00 2001 From: Andrew Shao Date: Fri, 5 Apr 2024 18:08:55 +0000 Subject: [PATCH 05/15] Fix nonvirtual destructor and stdlib include --- include/address.h | 5 +++++ include/commandreply.h | 2 +- tests/cpp/client_test_ensemble.cpp | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/include/address.h b/include/address.h index 2607fabde..44d1c5638 100644 --- a/include/address.h +++ b/include/address.h @@ -52,6 +52,11 @@ class SRAddress */ SRAddress() : _is_tcp(true), _tcp_host(""), _tcp_port(0) {} + /*! + * \brief SRAddress default destructor + */ + virtual ~SRAddress() {} + /*! * \brief SRAddress constructor * \param addr_spec The address (string form) of a server diff --git a/include/commandreply.h b/include/commandreply.h index 8fd34ca95..96e78963d 100644 --- a/include/commandreply.h +++ b/include/commandreply.h @@ -29,7 +29,7 @@ #ifndef SMARTREDIS_COMMANDREPLY_H #define SMARTREDIS_COMMANDREPLY_H -#include "stdlib.h" +#include #include #include #include diff --git a/tests/cpp/client_test_ensemble.cpp b/tests/cpp/client_test_ensemble.cpp index d807d691f..11942cfc9 100644 --- a/tests/cpp/client_test_ensemble.cpp +++ b/tests/cpp/client_test_ensemble.cpp @@ -31,7 +31,7 @@ #include #include #include -#include "stdlib.h" +#include void load_mnist_image_to_array(float**** img) { From 403e70eb15548ff5f02e7956245fd9872353e95c Mon Sep 17 00:00:00 2001 From: Andrew Shao Date: Fri, 5 Apr 2024 18:13:35 +0000 Subject: [PATCH 06/15] Update CMakeList and Makefile with more pedantic options --- CMakeLists.txt | 7 ++++++- Makefile | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 4b98f13b9..bf5863381 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -55,7 +55,12 @@ endif() # to smartredis_defs.cmake if (SR_PEDANTIC) if((CMAKE_CXX_COMPILER_ID STREQUAL "GNU") OR (CMAKE_CXX_COMPILER_ID STREQUAL "INTEL")) - add_compile_options(-Wall -Werror -pedantic) + add_compile_options( + -Wall + -Werror + -pedantic + -Wextra + ) else() message(WARNING "SR_PEDANTIC was specified, but the CMAKE compiler is not GCC") endif() diff --git a/Makefile b/Makefile index 928020166..c5c4fd035 100644 --- a/Makefile +++ b/Makefile @@ -137,7 +137,7 @@ lib-with-fortran: lib # help: test-lib - Build SmartRedis clients into a dynamic library with least permissive compiler settings .PHONY: test-lib -test-lib: SR_PEDANTIC=OFF #TODO: fix warnings in C++ +test-lib: SR_PEDANTIC=ON test-lib: lib # help: test-lib-with-fortran - Build SmartRedis clients into a dynamic library with least permissive compiler settings From 05af64002413f3c7871b6652b74e95feaa3b99d5 Mon Sep 17 00:00:00 2001 From: Andrew Shao Date: Fri, 5 Apr 2024 18:56:33 +0000 Subject: [PATCH 07/15] Refine pedantic flags for Intel and NVHPC --- CMakeLists.txt | 23 +++++++++++++++-------- Makefile | 2 +- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index bf5863381..718a7709f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -53,16 +53,23 @@ endif() # For now, we only support Pedantic on the main library build. # If/when we fine-tune the examples and test cases, move this block # to smartredis_defs.cmake +# Note: -Wextra can be added after unused parameters are addressed if (SR_PEDANTIC) - if((CMAKE_CXX_COMPILER_ID STREQUAL "GNU") OR (CMAKE_CXX_COMPILER_ID STREQUAL "INTEL")) - add_compile_options( - -Wall - -Werror - -pedantic - -Wextra - ) + if( + (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") OR + (CMAKE_CXX_COMPILER_ID STREQUAL "NVHPC") + ) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Werror -pedantic") + set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -Wall -Werror") + elseif( + (CMAKE_CXX_COMPILER_ID STREQUAL "Intel") OR + (CMAKE_CXX_COMPILER_ID STREQUAL "IntelLLVM") + ) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Werror -pedantic") + set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -warn all -warn error") else() - message(WARNING "SR_PEDANTIC was specified, but the CMAKE compiler is not GCC") + message(WARNING "SR_PEDANTIC not supported for ${CMAKE_CXX_COMPILER_ID}") + message(WARNING ${CMAKE_CXX_COMPILER_ID}) endif() if(CMAKE_Fortran_COMPILER_ID STREQUAL "GNU") set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -Wno-maybe-uninitialized") diff --git a/Makefile b/Makefile index c5c4fd035..7630e447c 100644 --- a/Makefile +++ b/Makefile @@ -137,7 +137,7 @@ lib-with-fortran: lib # help: test-lib - Build SmartRedis clients into a dynamic library with least permissive compiler settings .PHONY: test-lib -test-lib: SR_PEDANTIC=ON +test-lib: SR_PEDANTIC=ON test-lib: lib # help: test-lib-with-fortran - Build SmartRedis clients into a dynamic library with least permissive compiler settings From 26052141e85e9314a22f479d4422a99d7c9e7582 Mon Sep 17 00:00:00 2001 From: Andrew Shao Date: Fri, 5 Apr 2024 20:28:17 +0000 Subject: [PATCH 08/15] Update changelog --- doc/changelog.rst | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/doc/changelog.rst b/doc/changelog.rst index cebe32a23..9099d3c77 100644 --- a/doc/changelog.rst +++ b/doc/changelog.rst @@ -8,16 +8,21 @@ To be released at some future point in time Description +- Fix C++ cosmetic defects leading to compiler warnings - Update CI for Intel suite - Fix inconsistency in C-API ConfigOptions is_configured() parameters Detailed Notes +- Fixes some mainly cosmetic defects in the C++ client that were leading to warnings + when pedantic compiler flags were enabled (PR476_) +- Re-enable SR_PEDANTIC for the `test-lib` and `test-lib-with-fortran` Makefile targets (PR476_) - Version numbers changed for the Intel Compiler chain that lead to the C and C++ compilers not being available. Now, the entirety of the Base and HPC kits are installed to ensure consistent versions. (PR475_) - Fix an inconsistency in the C-API ConfigOptions is_configured() parameter names. (PR471_) +.. _PR476: https://github.com/CrayLabs/SmartRedis/pull/476 .. _PR475: https://github.com/CrayLabs/SmartRedis/pull/475 .. _PR471: https://github.com/CrayLabs/SmartRedis/pull/471 @@ -34,7 +39,7 @@ Description Detailed Notes - A previous bug fix for the Python client which addressed a problem when sending - numpy views inadvertently kept the original put_tensor call in place. This + numpy views inadvertently kept the original put_tensor call in place. This essentially doubles the cost of the operation. (PR464_) .. _PR464: https://github.com/CrayLabs/SmartRedis/pull/464 From 471e92b24aeb86caf8c9402cbfdfbf63a02da71e Mon Sep 17 00:00:00 2001 From: Andrew Shao Date: Thu, 11 Apr 2024 16:34:49 +0000 Subject: [PATCH 09/15] Explicitly pointer in SharedMemoryList --- CMakeLists.txt | 4 ++-- Makefile | 2 +- include/address.h | 5 ----- include/sharedmemorylist.tcc | 12 +++++++++++- 4 files changed, 14 insertions(+), 9 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 718a7709f..9dad87ff2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -59,8 +59,8 @@ if (SR_PEDANTIC) (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") OR (CMAKE_CXX_COMPILER_ID STREQUAL "NVHPC") ) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Werror -pedantic") - set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -Wall -Werror") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Werror -pedantic -Wextra") + set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -Wall -Werror -Wextra") elseif( (CMAKE_CXX_COMPILER_ID STREQUAL "Intel") OR (CMAKE_CXX_COMPILER_ID STREQUAL "IntelLLVM") diff --git a/Makefile b/Makefile index 7630e447c..6d28bda42 100644 --- a/Makefile +++ b/Makefile @@ -142,7 +142,7 @@ test-lib: lib # help: test-lib-with-fortran - Build SmartRedis clients into a dynamic library with least permissive compiler settings .PHONY: test-lib-with-fortran -test-lib-with-fortran: SR_PEDANTIC=OFF #TODO: fix warnings in C++ +test-lib-with-fortran: SR_PEDANTIC=ON test-lib-with-fortran: lib-with-fortran # help: test-deps - Make SmartRedis testing dependencies diff --git a/include/address.h b/include/address.h index 44d1c5638..2607fabde 100644 --- a/include/address.h +++ b/include/address.h @@ -52,11 +52,6 @@ class SRAddress */ SRAddress() : _is_tcp(true), _tcp_host(""), _tcp_port(0) {} - /*! - * \brief SRAddress default destructor - */ - virtual ~SRAddress() {} - /*! * \brief SRAddress constructor * \param addr_spec The address (string form) of a server diff --git a/include/sharedmemorylist.tcc b/include/sharedmemorylist.tcc index ebbb7d2bf..17fc0bdc9 100644 --- a/include/sharedmemorylist.tcc +++ b/include/sharedmemorylist.tcc @@ -29,11 +29,21 @@ #ifndef SMARTREDIS_SHAREDMEMORYLIST_TCC #define SMARTREDIS_SHAREDMEMORYLIST_TCC +// Define memory deletion operator (delete[]) to +// match the memory allocation operator (new[]) +class PointerDeletion { + public: + template + void operator()(T* ptr) const { + delete[] ptr; + } +}; + // Record a memory allocation template void SharedMemoryList::add_allocation(size_t bytes, T* ptr) { - std::shared_ptr s_ptr(ptr); + std::shared_ptr s_ptr(ptr, PointerDeletion()); _inventory.push_front(s_ptr); } From 51d62d7af7e1a9193571af2a8efbf086760b44a0 Mon Sep 17 00:00:00 2001 From: Matt Ellis Date: Tue, 16 Apr 2024 10:34:31 -0500 Subject: [PATCH 10/15] Debug output for github actions. --- src/cpp/rediscluster.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/cpp/rediscluster.cpp b/src/cpp/rediscluster.cpp index bb60a2789..a6858700b 100644 --- a/src/cpp/rediscluster.cpp +++ b/src/cpp/rediscluster.cpp @@ -267,10 +267,12 @@ PipelineReply RedisCluster::run_via_unordered_pipelines(CommandList& cmd_list) PipelineReply reply; try { reply = _run_pipeline(shard_cmds[s], shard_prefix); + std::cout<<"Shard "< Date: Tue, 16 Apr 2024 11:13:10 -0500 Subject: [PATCH 11/15] Update compile error --- src/cpp/rediscluster.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cpp/rediscluster.cpp b/src/cpp/rediscluster.cpp index a6858700b..75306a65e 100644 --- a/src/cpp/rediscluster.cpp +++ b/src/cpp/rediscluster.cpp @@ -305,7 +305,7 @@ PipelineReply RedisCluster::run_via_unordered_pipelines(CommandList& cmd_list) for (size_t i = 0; i < num_shards; i++) { std::cout<<"Checking shard "< Date: Tue, 16 Apr 2024 12:57:57 -0500 Subject: [PATCH 12/15] Move to array --- src/cpp/rediscluster.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/cpp/rediscluster.cpp b/src/cpp/rediscluster.cpp index 75306a65e..5cde6fadd 100644 --- a/src/cpp/rediscluster.cpp +++ b/src/cpp/rediscluster.cpp @@ -238,9 +238,13 @@ PipelineReply RedisCluster::run_via_unordered_pipelines(CommandList& cmd_list) volatile size_t pipeline_completion_count = 0; size_t num_shards = shard_cmd_index_list.size(); Exception error_response = Exception("no error"); - std::vector success_status(num_shards, false); + bool success_status[num_shards]; std::mutex results_mutex; + for (size_t s = 0; s < num_shards; s++) { + success_status[s] = false; + } + // Loop over all shards and execute pipelines for (size_t s = 0; s < num_shards; s++) { // Get shard prefix @@ -267,7 +271,6 @@ PipelineReply RedisCluster::run_via_unordered_pipelines(CommandList& cmd_list) PipelineReply reply; try { reply = _run_pipeline(shard_cmds[s], shard_prefix); - std::cout<<"Shard "< Date: Tue, 16 Apr 2024 14:56:19 -0500 Subject: [PATCH 13/15] Correct the allocation. --- src/cpp/rediscluster.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/cpp/rediscluster.cpp b/src/cpp/rediscluster.cpp index 5cde6fadd..117c3f9d1 100644 --- a/src/cpp/rediscluster.cpp +++ b/src/cpp/rediscluster.cpp @@ -238,7 +238,7 @@ PipelineReply RedisCluster::run_via_unordered_pipelines(CommandList& cmd_list) volatile size_t pipeline_completion_count = 0; size_t num_shards = shard_cmd_index_list.size(); Exception error_response = Exception("no error"); - bool success_status[num_shards]; + bool success_status = new bool[num_shards]; std::mutex results_mutex; for (size_t s = 0; s < num_shards; s++) { @@ -322,6 +322,8 @@ PipelineReply RedisCluster::run_via_unordered_pipelines(CommandList& cmd_list) // with order of execution all_replies.reorder(cmd_list_index_ooe); + delete[] success_status; + return all_replies; } From 421c4cdfec57a9ed49d96776bf09c99a896253a1 Mon Sep 17 00:00:00 2001 From: Matt Ellis Date: Tue, 16 Apr 2024 15:07:34 -0500 Subject: [PATCH 14/15] Fix allocation --- src/cpp/rediscluster.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cpp/rediscluster.cpp b/src/cpp/rediscluster.cpp index 117c3f9d1..f731a8ad1 100644 --- a/src/cpp/rediscluster.cpp +++ b/src/cpp/rediscluster.cpp @@ -238,7 +238,7 @@ PipelineReply RedisCluster::run_via_unordered_pipelines(CommandList& cmd_list) volatile size_t pipeline_completion_count = 0; size_t num_shards = shard_cmd_index_list.size(); Exception error_response = Exception("no error"); - bool success_status = new bool[num_shards]; + bool* success_status = new bool[num_shards]; std::mutex results_mutex; for (size_t s = 0; s < num_shards; s++) { From a5d4379a44995f7389fe261789967e013372b9d1 Mon Sep 17 00:00:00 2001 From: Matt Ellis Date: Tue, 16 Apr 2024 15:33:07 -0500 Subject: [PATCH 15/15] remove unreachable --- src/cpp/rediscluster.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/cpp/rediscluster.cpp b/src/cpp/rediscluster.cpp index f731a8ad1..47879184b 100644 --- a/src/cpp/rediscluster.cpp +++ b/src/cpp/rediscluster.cpp @@ -313,7 +313,6 @@ PipelineReply RedisCluster::run_via_unordered_pipelines(CommandList& cmd_list) std::cout<<"Shard "<