Important fixes: - Disable RWF_ATOMIC by default because Linux incorrectly requires all atomic writes to be power-of-2-sized and length-aligned. Details: [use_atomic_flag](https://vitastor.io/en/docs/config/osd.html#use_atomic_flag) - Fix cross-pool snapshots not working at all - always reading old data after taking the snapshot - Fix level_placement (broken in 2.2.0) - Fix CAS write return values in the client library (broken in 2.4.4), also breaking unaligned writes in VitastorFS - Fix VitastorFS possibly losing some of intersecting parallel unaligned writes - Prevent possible reads of the old data during unfinished intent writes in the new store - Tests added for all of above problems to prevent future regressions Other fixes: - Allow to specify OSD tags and weights during prepare - Only clear the first block instead of whole OSD metadata and journal areas during vitastor-disk prepare - OSD anyway clears them on the first run - Fix vitastor-cli dd non-seekable detection and error status - Do not stop OSD on zero-copy tcp short send errors - these aren't a bug, but just caused by TCP client disconnections - Fix modify-osd not working after deleting the OSD configuration key from etcd - Fix regular antietcd websocket disconnections in OSD due to lack of WS_PONG responses to WS_PING - Reduce the number of allocated RDMA memory regions - Allow routed RoCE
21 lines
1.0 KiB
CMake
21 lines
1.0 KiB
CMake
cmake_minimum_required(VERSION 2.8.12)
|
|
|
|
project(vitastor)
|
|
|
|
set(VITASTOR_VERSION "3.0.1")
|
|
|
|
include(CTest)
|
|
|
|
add_custom_target(build_tests)
|
|
add_custom_target(test
|
|
COMMAND
|
|
echo leak:tcmalloc > ${CMAKE_CURRENT_BINARY_DIR}/lsan-suppress.txt &&
|
|
env LSAN_OPTIONS=suppressions=${CMAKE_CURRENT_BINARY_DIR}/lsan-suppress.txt ${CMAKE_CTEST_COMMAND}
|
|
)
|
|
# make -j16 -C ../../build test_heap && ../../build/src/test/test_heap
|
|
# make -j16 -C ../../build test_heap && rm -f $(find ../../build -name '*.gcda') && ctest -V -T test -T coverage -R heap --test-dir ../../build && (cd ../../build; gcovr -f ../src --html --html-nested -o coverage/index.html; cd ../src/test)
|
|
# make -j16 -C ../../build test_blockstore && rm -f $(find ../../build -name '*.gcda') && ctest -V -T test -T coverage -R blockstore --test-dir ../../build && (cd ../../build; gcovr -f ../src --html --html-nested -o coverage/index.html; cd ../src/test)
|
|
# kcov --include-path=../../../src ../../kcov ./test_blockstore
|
|
add_dependencies(test build_tests)
|
|
add_subdirectory(src)
|