From fc8f68e39115f19981e258d71028089a6ac650db Mon Sep 17 00:00:00 2001 From: Patrick LeBlanc Date: Wed, 28 Aug 2019 12:52:47 -0500 Subject: [PATCH 1/2] A couple random things - Re-added the StorageManager/Enabled key in the default config file. Thought I had switched all that stuff to only look at DBRootStorageType but I was wrong. - Made the unit_tests bin for SM stay in the SM dir - Collapsed one level of build dirs for SM. For some reason it was putting test data in storage-manager/storage-manager/testData - Limited a single read() call to 100MB as a paranoid safety measure. Normal usage won't read that much at once anyway. --- oam/etc/Columnstore.xml | 1 + oam/etc/Columnstore.xml.singleserver | 1 + storage-manager/CMakeLists.txt | 29 ++++++++++++++++++---------- storage-manager/src/ReadTask.cpp | 4 +++- 4 files changed, 24 insertions(+), 11 deletions(-) diff --git a/oam/etc/Columnstore.xml b/oam/etc/Columnstore.xml index 5a24c8630..41fed3ee7 100644 --- a/oam/etc/Columnstore.xml +++ b/oam/etc/Columnstore.xml @@ -549,6 +549,7 @@ 30 + N diff --git a/oam/etc/Columnstore.xml.singleserver b/oam/etc/Columnstore.xml.singleserver index b5f4f8d77..7331ec1f8 100644 --- a/oam/etc/Columnstore.xml.singleserver +++ b/oam/etc/Columnstore.xml.singleserver @@ -540,5 +540,6 @@ 30 + N diff --git a/storage-manager/CMakeLists.txt b/storage-manager/CMakeLists.txt index 66f1285f5..e815752cc 100755 --- a/storage-manager/CMakeLists.txt +++ b/storage-manager/CMakeLists.txt @@ -82,21 +82,30 @@ add_executable(StorageManager src/main.cpp) target_link_libraries(StorageManager storagemanager) set_property(TARGET StorageManager PROPERTY CXX_STANDARD 11) -add_custom_command( - TARGET StorageManager PRE_BUILD - COMMAND ${CMAKE_COMMAND} -E make_directory - ${CMAKE_CURRENT_BINARY_DIR}/storage-manager/test_data) -add_custom_command( - TARGET StorageManager POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_directory - ${CMAKE_SOURCE_DIR}/storage-manager/test_data - ${CMAKE_CURRENT_BINARY_DIR}/storage-manager/test_data) +set(TMPDIR ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}) + add_executable(unit_tests src/unit_tests.cpp) target_compile_definitions(unit_tests PUBLIC BOOST_NO_CXX11_SCOPED_ENUMS) -add_dependencies(unit_tests test_files) target_link_libraries(unit_tests storagemanager) set_property(TARGET unit_tests PROPERTY CXX_STANDARD 11) +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${TMPDIR}) + +add_custom_command( + TARGET unit_tests PRE_BUILD + COMMAND ${CMAKE_COMMAND} -E make_directory + ${CMAKE_CURRENT_BINARY_DIR}/test_data +) +add_custom_command( + TARGET unit_tests POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_directory + ${CMAKE_CURRENT_SOURCE_DIR}/test_data + ${CMAKE_CURRENT_BINARY_DIR}/test_data +# COMMAND ${CMAKE_COMMAND} -E copy +# ../bin/unit_tests # what is putting our bins in ../bin? +# ${CMAKE_CURRENT_BINARY_DIR} +) + # The includes and lib linkages required to link against cloudio ... # pretty crazy. When lib dependencies are eventually config'd right, # change this to only include and link against cloudio. diff --git a/storage-manager/src/ReadTask.cpp b/storage-manager/src/ReadTask.cpp index 8b6f72e5c..8a25a0dab 100644 --- a/storage-manager/src/ReadTask.cpp +++ b/storage-manager/src/ReadTask.cpp @@ -65,7 +65,9 @@ bool ReadTask::run() // read from IOC, write to the socket vector outbuf; - outbuf.resize(max(cmd->count, 4) + sizeof(sm_response)); + if (cmd->count > (100 << 20)) + cmd->count = (100 << 20); // cap a read request at 100MB + outbuf.resize(max(cmd->count, 4) + sizeof(sm_response)); sm_response *resp = (sm_response *) &outbuf[0]; resp->returnCode = 0; From 9e1282e4378385a15409a705b9c6ff0e3de75ab8 Mon Sep 17 00:00:00 2001 From: benthompson15 Date: Thu, 29 Aug 2019 17:35:58 -0500 Subject: [PATCH 2/2] put unit_test exe in correct place --- storage-manager/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/storage-manager/CMakeLists.txt b/storage-manager/CMakeLists.txt index e815752cc..dd6302952 100755 --- a/storage-manager/CMakeLists.txt +++ b/storage-manager/CMakeLists.txt @@ -83,6 +83,7 @@ target_link_libraries(StorageManager storagemanager) set_property(TARGET StorageManager PROPERTY CXX_STANDARD 11) set(TMPDIR ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}) +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) add_executable(unit_tests src/unit_tests.cpp) target_compile_definitions(unit_tests PUBLIC BOOST_NO_CXX11_SCOPED_ENUMS)