turbodbc
turbodbc copied to clipboard
Scheduled CI daily builds have been failing since the 14th of March
Hi,
I was investigating why our builds for integration with turbodbc where failing on Apache Arrow and have noticed that the turbodbc CI has been failing since the 14th of March: https://github.com/blue-yonder/turbodbc/actions/runs/1979076318
Our Apache Arrow ticket can be found here: https://issues.apache.org/jira/browse/ARROW-15997
You can see here the error from the build on turbodbc CI:
+build | FAILED: cpp/turbodbc/Test/CMakeFiles/turbodbc_test.dir/tests/field_translator_test.cpp.o
+build | /opt/conda/envs/turbodbc-dev/bin/x86_64-conda-linux-gnu-c++ -I/src/cpp/turbodbc/Library -I/src/cpp/turbodbc/../cpp_odbc/Library -I/src/cpp/turbodbc/Test -fvisibility-inlines-hidden -std=c++17 -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem /opt/conda/envs/turbodbc-dev/include -Wall -Wextra -g -O0 -pedantic -fprofile-arcs -ftest-coverage -std=c++11 -MD -MT cpp/turbodbc/Test/CMakeFiles/turbodbc_test.dir/tests/field_translator_test.cpp.o -MF cpp/turbodbc/Test/CMakeFiles/turbodbc_test.dir/tests/field_translator_test.cpp.o.d -o cpp/turbodbc/Test/CMakeFiles/turbodbc_test.dir/tests/field_translator_test.cpp.o -c /src/cpp/turbodbc/Test/tests/field_translator_test.cpp
+build | In file included from /opt/conda/envs/turbodbc-dev/include/boost/type_index/stl_type_index.hpp:32,
+build | from /opt/conda/envs/turbodbc-dev/include/boost/type_index.hpp:29,
+build | from /opt/conda/envs/turbodbc-dev/include/boost/variant/variant.hpp:21,
+build | from /src/cpp/turbodbc/Library/turbodbc/field.h:3,
+build | from /src/cpp/turbodbc/Library/turbodbc/field_translator.h:3,
+build | from /src/cpp/turbodbc/Test/tests/field_translator_test.cpp:1:
+build | /opt/conda/envs/turbodbc-dev/include/boost/optional/optional.hpp: In instantiation of 'std::basic_ostream<_CharT, _Traits>& boost::operator<<(std::basic_ostream<_CharT, _Traits>&, const boost::optional_detail::optional_tag&) [with CharType = char; CharTrait = std::char_traits<char>]':
+build | /opt/conda/envs/turbodbc-dev/include/gtest/gtest-printers.h:215:9: required from 'static void testing::internal::internal_stream_operator_without_lexical_name_lookup::StreamPrinter::PrintValue(const T&, std::ostream*) [with T = boost::optional<boost::variant<long int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, double, boost::gregorian::date, boost::posix_time::ptime> >; <template-parameter-1-2> = void; <template-parameter-1-3> = std::basic_ostream<char>&; std::ostream = std::basic_ostream<char>]'
+build | /opt/conda/envs/turbodbc-dev/include/gtest/gtest-printers.h:312:22: required from 'void testing::internal::PrintWithFallback(const T&, std::ostream*) [with T = boost::optional<boost::variant<long int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, double, boost::gregorian::date, boost::posix_time::ptime> >; std::ostream = std::basic_ostream<char>]'
+build | /opt/conda/envs/turbodbc-dev/include/gtest/gtest-printers.h:441:30: required from 'void testing::internal::PrintTo(const T&, std::ostream*) [with T = boost::optional<boost::variant<long int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, double, boost::gregorian::date, boost::posix_time::ptime> >; std::ostream = std::basic_ostream<char>]'
+build | /opt/conda/envs/turbodbc-dev/include/gtest/gtest-printers.h:691:12: required from 'static void testing::internal::UniversalPrinter<T>::Print(const T&, std::ostream*) [with T = boost::optional<boost::variant<long int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, double, boost::gregorian::date, boost::posix_time::ptime> >; std::ostream = std::basic_ostream<char>]'
+build | /opt/conda/envs/turbodbc-dev/include/gtest/gtest-printers.h:980:30: required from 'void testing::internal::UniversalPrint(const T&, std::ostream*) [with T = boost::optional<boost::variant<long int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, double, boost::gregorian::date, boost::posix_time::ptime> >; std::ostream = std::basic_ostream<char>]'
+build | /opt/conda/envs/turbodbc-dev/include/gtest/gtest-printers.h:865:19: [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
+build | /opt/conda/envs/turbodbc-dev/include/gtest/gtest-printers.h:334:36: required from 'static std::string testing::internal::FormatForComparison<ToPrint, OtherOperand>::Format(const ToPrint&) [with ToPrint = boost::optional<boost::variant<long int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, double, boost::gregorian::date, boost::posix_time::ptime> >; OtherOperand = boost::optional<boost::variant<long int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, double, boost::gregorian::date, boost::posix_time::ptime> >; std::string = std::__cxx11::basic_string<char>]'
+build | /opt/conda/envs/turbodbc-dev/include/gtest/gtest-printers.h:415:45: required from 'std::string testing::internal::FormatForComparisonFailureMessage(const T1&, const T2&) [with T1 = boost::optional<boost::variant<long int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, double, boost::gregorian::date, boost::posix_time::ptime> >; T2 = boost::opt
+build | /opt/conda/envs/turbodbc-dev/include/gtest/gtest-printers.h:415:45: required from 'std::string testing::internal::FormatForComparisonFailureMessage(const T1&, const T2&) [with T1 = boost::optional<boost::variant<long int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, double, boost::gregorian::date, boost::posix_time::ptime> >; T2 = boost::optional<boost::variant<long int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, double, boost::gregorian::date, boost::posix_time::ptime> >; std::string = std::__cxx11::basic_string<char>]'
+build | /opt/conda/envs/turbodbc-dev/include/gtest/gtest.h:1527:53: required from 'testing::AssertionResult testing::internal::CmpHelperEQFailure(const char*, const char*, const T1&, const T2&) [with T1 = boost::optional<boost::variant<long int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, double, boost::gregorian::date, boost::posix_time::ptime> >; T2 = boost::optional<boost::variant<long int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, double, boost::gregorian::date, boost::posix_time::ptime> >]'
+build | /opt/conda/envs/turbodbc-dev/include/gtest/gtest.h:1549:28: required from 'testing::AssertionResult testing::internal::CmpHelperEQ(const char*, const char*, const T1&, const T2&) [with T1 = boost::optional<boost::variant<long int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, double, boost::gregorian::date, boost::posix_time::ptime> >; T2 = boost::optional<boost::variant<long int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, double, boost::gregorian::date, boost::posix_time::ptime> >]'
+build | /opt/conda/envs/turbodbc-dev/include/gtest/gtest.h:1564:23: required from 'static testing::AssertionResult testing::internal::EqHelper::Compare(const char*, const char*, const T1&, const T2&) [with T1 = boost::optional<boost::variant<long int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, double, boost::gregorian::date, boost::posix_time::ptime> >; T2 = boost::optional<boost::variant<long int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, double, boost::gregorian::date, boost::posix_time::ptime> >; typename std::enable_if<((! std::is_integral<_Tp>::value) || (! std::is_pointer<_Dp>::value))>::type* <anonymous> = 0]'
+build | /src/cpp/turbodbc/Test/tests/field_translator_test.cpp:31:2: required from here
+build | /opt/conda/envs/turbodbc-dev/include/boost/optional/optional.hpp:1596:3: error: static assertion failed: If you want to output boost::optional, include header <boost/optional/optional_io.hpp>
+build | 1596 | BOOST_STATIC_ASSERT_MSG(sizeof(CharType) == 0, "If you want to output boost::optional, include header <boost/optional/optional_io.hpp>");
+build | | ^~~~~~~~~~~~~~~~~~~~~~~
+build | [104/155] Building CXX object cpp/turbodbc/Test/CMakeFiles/turbodbc_test.dir/tests/field_translators/boolean_translator_test.cpp.o
+build | [105/155] Building CXX object cpp/turbodbc/Test/CMakeFiles/turbodbc_test.dir/tests/field_translators/date_translator_test.cpp.o
+build | ninja: build stopped: subcommand failed.
+build | Command /bin/sh -c 'bash -ic " cmake -DBOOST_ROOT=\${CONDA_PREFIX} -DBUILD_COVERAGE=ON -DCMAKE_INSTALL_PREFIX=./dist -DPYTHON_EXECUTABLE=\$(which python) -GNinja .. && ninja && cmake --build . --target install && cd dist && python setup.py sdist "' failed with exit code 1
+build |
+build | ERROR: Command exited with non-zero code: RUN bash -ic " cmake -DBOOST_ROOT=\${CONDA_PREFIX} -DBUILD_COVERAGE=ON -DCMAKE_INSTALL_PREFIX=./dist -DPYTHON_EXECUTABLE=\$(which python) -GNinja .. && ninja && cmake --build . --target install && cd dist && python setup.py sdist "
Repeating the output of the command that caused the failure
================================ FAILURE [main] ================================
+build *failed* | ARROW_VERSION_RULE=>=1,<2 CONDA_EXTRA= NUMPY_VERSION_RULE=>=1.20.0 PYTHON_VERSION=3.8.12
+build *failed* | ERROR: Command exited with non-zero code: RUN bash -ic " cmake -DBOOST_ROOT=\${CONDA_PREFIX} -DBUILD_COVERAGE=ON -DCMAKE_INSTALL_PREFIX=./dist -DPYTHON_EXECUTABLE=\$(which python) -GNinja .. && ninja && cmake --build . --target install && cd dist && python setup.py sdist "
+build *failed* | --> RUN bash -ic " cmake -DBOOST_ROOT=\${CONDA_PREFIX} -DBUILD_COVERAGE=ON -DCMAKE_INSTALL_PREFIX=./dist -DPYTHON_EXECUTABLE=\$(which python) -GNinja .. && ninja && cmake --build . --target install && cd dist && python setup.py sdist "
Error: exit code: 1
+build *failed* | bash: cannot set terminal process group (1): Inappropriate ioctl for device
+build *failed* | bash: no job control in this shell
+build *failed* | -- The CXX compiler identification is GNU 10.3.0
+build *failed* | -- Detecting CXX compiler ABI info
+build *failed* | -- Detecting CXX compiler ABI info - done
+build *failed* | -- Check for working CXX compiler: /opt/conda/envs/turbodbc-dev/bin/x86_64-conda-linux-gnu-c++ - skipped
+build *failed* | -- Detecting CXX compile features
+build *failed* | -- Detecting CXX compile features - done
+build *failed* | -- Build type: Debug
+build *failed* | -- pybind11 v2.9.1
+build *failed* | -- Found PythonInterp: /opt/conda/envs/turbodbc-dev/bin/python (found version "3.8.12")
+build *failed* | -- Found PythonLibs: /opt/conda/envs/turbodbc-dev/lib/libpython3.8.so
+build *failed* | -- Performing Test HAS_FLTO
+build *failed* | -- Performing Test HAS_FLTO - Success
+build *failed* | -- Found GTest: /opt/conda/envs/turbodbc-dev/lib/libgtest.so
+build *failed* | -- Found Boost: /opt/conda/envs/turbodbc-dev/include (found version "1.77.0") found components: locale
+build *failed* | -- Detecting unixODBC library
+build *failed* | -- Found header files at: /opt/conda/envs/turbodbc-dev/include
+build *failed* | -- Found library at: /opt/conda/envs/turbodbc-dev/lib/libodbc.so
+build *failed* | -- Found Boost: /opt/conda/envs/turbodbc-dev/include (found version "1.77.0") found components: system date_time locale
+build *failed* | -- Detecting unixODBC library
+build *failed* | -- Found header files at: /opt/conda/envs/turbodbc-dev/include
+build *failed* | -- Found library at: /opt/conda/envs/turbodbc-dev/lib/libodbc.so
+build *failed* | -- Found Boost: /opt/conda/envs/turbodbc-dev/include (found version "1.77.0") found components: system
+build *failed* | -- Detecting unixODBC library
+build *failed* | -- Found header files at: /opt/conda/envs/turbodbc-dev/include
+build *failed* | -- Found library at: /opt/conda/envs/turbodbc-dev/lib/libodbc.so
+build *failed* | -- Detecting unixODBC library
+build *failed* | -- Found header files at: /opt/conda/envs/turbodbc-dev/include
+build *failed* | -- Found library at: /opt/conda/envs/turbodbc-dev/lib/libodbc.so
+build *failed* | CMake Warning (dev) at /opt/conda/envs/turbodbc-dev/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:438 (message):
+build *failed* | The package name passed to `find_package_handle_standard_args` (PkgConfig)
+build *failed* | does not match the name of the calling package (Arrow). This can lead to
+build *failed* | problems in calling code that expects `find_package` result variables
+build *failed* | (e.g., `_FOUND`) to follow a certain pattern.
+build *failed* | Call Stack (most recent call first):
+build *failed* | /opt/conda/envs/turbodbc-dev/share/cmake-3.22/Modules/FindPkgConfig.cmake:99 (find_package_handle_standard_args)
+build *failed* | cmake_scripts/FindArrow.cmake:26 (include)
+build *failed* | cpp/CMakeLists.txt:6 (find_package)
+build *failed* | This warning is for project developers. Use -Wno-dev to suppress it.
+build *failed* | -- Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE)
+build *failed* | -- Found /opt/conda/envs/turbodbc-dev/lib/libarrow.so in /opt/conda/envs/turbodbc-dev/lib
+build *failed* | -- Found the Arrow core library: /opt/conda/envs/turbodbc-dev/lib/libarrow.so
+build *failed* | -- Found the Arrow Python library: /opt/conda/envs/turbodbc-dev/lib/libarrow_python.so
+build *failed* | -- Detecting unixODBC library
+build *failed* | -- Found header files at: /opt/conda/envs/turbodbc-dev/include
+build *failed* | -- Found library at: /opt/conda/envs/turbodbc-dev/lib/libodbc.so
+build *failed* | CMake Warning (dev) at /opt/conda/envs/turbodbc-dev/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:438 (message):
+build *failed* | The package name passed to `find_package_handle_standard_args` (PkgConfig)
+build *failed* | does not match the name of the calling package (Arrow). This can lead to
+build *failed* | problems in calling code that expects `find_package` result variables
+build *failed* | (e.g., `_FOUND`) to follow a certain pattern.
+build *failed* | Call Stack (most recent call first):
+build *failed* | /opt/conda/envs/turbodbc-dev/share/cmake-3.22/Modules/FindPkgConfig.cmake:99 (find_package_handle_standard_args)
+build *failed* | cmake_scripts/FindArrow.cmake:26 (include)
+build *failed* | cpp/turbodbc_arrow/CMakeLists.txt:12 (find_package)
+build *failed* | This warning is for project developers. Use -Wno-dev to suppress it.
+build *failed* | -- Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE)
+build *failed* | -- Found /opt/conda/envs/turbodbc-dev/lib/libarrow.so in /opt/conda/envs/turbodbc-dev/lib
+build *failed* | -- Found the Arrow core library: /opt/conda/envs/turbodbc-dev/lib/libarrow.so
+build *failed* | -- Found the Arrow Python library: /opt/conda/envs/turbodbc-dev/lib/libarrow_python.so
+build *failed* | -- Configuring done
+build *failed* | CMake Warning (dev) at cpp/cpp_odbc/Test/CMakeLists.txt:9 (add_dependencies):
+build *failed* | Policy CMP0046 is not set: Error on non-existent dependency in
+build *failed* | add_dependencies. Run "cmake --help-policy CMP0046" for policy details.
+build *failed* | Use the cmake_policy command to set the policy and suppress this warning.
+build *failed* | The dependency target "googletest_build" of target "cpp_odbc_test" does not
+build *failed* | exist.
+build *failed* | This warning is for project developers. Use -Wno-dev to suppress it.
+build *failed* | CMake Warning (dev) at cpp/turbodbc/Test/CMakeLists.txt:10 (add_dependencies):
+build *failed* | Policy CMP0046 is not set: Error on non-existent dependency in
+build *failed* | add_dependencies. Run "cmake --help-policy CMP0046" for policy details.
+build *failed* | Use the cmake_policy command to set the policy and suppress this warning.
+build *failed* | The dependency target "googletest_build" of target "turbodbc_test" does not
+build *failed* | exist.
+build *failed* | This warning is for project developers. Use -Wno-dev to suppress it.
+build *failed* | CMake Warning (dev) at cpp/turbodbc_arrow/Test/CMakeLists.txt:11 (add_dependencies):
+build *failed* | Policy CMP0046 is not set: Error on non-existent dependency in
+build *failed* | add_dependencies. Run "cmake --help-policy CMP0046" for policy details.
+build *failed* | Use the cmake_policy command to set the policy and suppress this warning.
+build *failed* | The dependency target "googletest_build" of target "turbodbc_arrow_test"
+build *failed* | does not exist.
+build *failed* | This warning is for project developers. Use -Wno-dev to suppress it.
+build *failed* | -- Generating done
+build *failed* | -- Build files have been written to: /src/build
+build *failed* | [1/155] Forcing refreshing of the CMake configuration. This allows to use globbing safely.
+build *failed* | [2/155] Building CXX object cpp/cpp_odbc/Library/CMakeFiles/cpp_odbc.dir/src/connection.cpp.o
+build *failed* | [3/155] Building CXX object cpp/cpp_odbc/Library/CMakeFiles/cpp_odbc.dir/src/cpp_odbc.cpp.o
+build *failed* | [4/155] Building CXX object cpp/cpp_odbc/Library/CMakeFiles/cpp_odbc.dir/src/column_description.cpp.o
+build *failed* | [5/155] Building CXX object cpp/cpp_odbc/Library/CMakeFiles/cpp_odbc.dir/src/level1/api.cpp.o
+build *failed* | [6/155] Building CXX object cpp/cpp_odbc/Library/CMakeFiles/cpp_odbc.dir/src/level1/level1.cpp.o
+build *failed* | [7/155] Building CXX object cpp/cpp_odbc/Library/CMakeFiles/cpp_odbc.dir/src/level1/unixodbc_backend.cpp.o
+build *failed* | [8/155] Building CXX object cpp/cpp_odbc/Library/CMakeFiles/cpp_odbc.dir/src/environment.cpp.o
+build *failed* | [9/155] Building CXX object cpp/cpp_odbc/Library/CMakeFiles/cpp_odbc.dir/src/error.cpp.o
+build *failed* | [10/155] Building CXX object cpp/cpp_odbc/Library/CMakeFiles/cpp_odbc.dir/src/level2/handles.cpp.o
+build *failed* | [11/155] Building CXX object cpp/cpp_odbc/Library/CMakeFiles/cpp_odbc.dir/src/level2/api.cpp.o
+build *failed* | [12/155] Building CXX object cpp/cpp_odbc/Library/CMakeFiles/cpp_odbc.dir/src/level1/unixodbc_backend_debug.cpp.o
+build *failed* | [13/155] Building CXX object cpp/cpp_odbc/Library/CMakeFiles/cpp_odbc.dir/src/level2/input_string_buffer.cpp.o
+build *failed* | [14/155] Building CXX object cpp/cpp_odbc/Library/CMakeFiles/cpp_odbc.dir/src/level2/input_u16string_buffer.cpp.o
+build *failed* | [15/155] Building CXX object cpp/cpp_odbc/Library/CMakeFiles/cpp_odbc.dir/src/level2/string_buffer.cpp.o
+build *failed* | [16/155] Building CXX object cpp/cpp_odbc/Library/CMakeFiles/cpp_odbc.dir/src/level2/level2.cpp.o
+build *failed* | [17/155] Building CXX object cpp/cpp_odbc/Library/CMakeFiles/cpp_odbc.dir/src/level3/level3.cpp.o
+build *failed* | [18/155] Building CXX object cpp/cpp_odbc/Library/CMakeFiles/cpp_odbc.dir/src/level2/u16string_buffer.cpp.o
+build *failed* | [19/155] Building CXX object cpp/cpp_odbc/Library/CMakeFiles/cpp_odbc.dir/src/level2/level1_connector.cpp.o
+build *failed* | [20/155] Building CXX object cpp/cpp_odbc/Library/CMakeFiles/cpp_odbc.dir/src/level3/raii_connection.cpp.o
+build *failed* | [21/155] Building CXX object cpp/cpp_odbc/Library/CMakeFiles/cpp_odbc.dir/src/level3/raii_environment.cpp.o
+build *failed* | [22/155] Building CXX object cpp/cpp_odbc/Library/CMakeFiles/cpp_odbc.dir/src/level3/raii_statement.cpp.o
+build *failed* | [23/155] Building CXX object cpp/cpp_odbc/Library/CMakeFiles/cpp_odbc.dir/src/multi_value_buffer.cpp.o
+build *failed* | [24/155] Building CXX object cpp/cpp_odbc/Library/CMakeFiles/cpp_odbc.dir/src/make_environment.cpp.o
+build *failed* | [25/155] Building CXX object cpp/cpp_odbc/Library/CMakeFiles/cpp_odbc.dir/src/statement.cpp.o
+build *failed* | [26/155] Linking CXX shared library cpp/cpp_odbc/Library/libcpp_odbc.so
+build *failed* | [27/155] Building CXX object cpp/turbodbc/Test/CMakeFiles/turbodbc_test.dir/tests/description_test.cpp.o
+build *failed* | [28/155] Building CXX object cpp/cpp_odbc/Test/CMakeFiles/cpp_odbc_test.dir/tests/column_description_test.cpp.o
+build *failed* | [29/155] Building CXX object cpp/cpp_odbc/Test/CMakeFiles/cpp_odbc_test.dir/cpp_odbc_test/level1_mock_api.cpp.o
+build *failed* | [30/155] Building CXX object cpp/cpp_odbc/Test/CMakeFiles/cpp_odbc_test.dir/cpp_odbc_test/level2_mock_api.cpp.o
+build *failed* | [31/155] Building CXX object cpp/cpp_odbc/Test/CMakeFiles/cpp_odbc_test.dir/tests/credentials_test.cpp.o
+build *failed* | [32/155] Building CXX object cpp/cpp_odbc/Test/CMakeFiles/cpp_odbc_test.dir/tests/error_test.cpp.o
+build *failed* | [33/155] Building CXX object cpp/cpp_odbc/Test/CMakeFiles/cpp_odbc_test.dir/tests/environment_test.cpp.o
+build *failed* | [34/155] Building CXX object cpp/cpp_odbc/Test/CMakeFiles/cpp_odbc_test.dir/tests/connection_test.cpp.o
+build *failed* | [35/155] Building CXX object cpp/cpp_odbc/Test/CMakeFiles/cpp_odbc_test.dir/tests/level2/diagnostic_record_test.cpp.o
+build *failed* | [36/155] Building CXX object cpp/cpp_odbc/Test/CMakeFiles/cpp_odbc_test.dir/tests/level2/fixed_length_string_buffer_test.cpp.o
+build *failed* | [37/155] Building CXX object cpp/cpp_odbc/Test/CMakeFiles/cpp_odbc_test.dir/tests/level2/handles_test.cpp.o
+build *failed* | [38/155] Building CXX object cpp/cpp_odbc/Test/CMakeFiles/cpp_odbc_test.dir/tests/level2/input_string_buffer_test.cpp.o
+build *failed* | [39/155] Building CXX object cpp/cpp_odbc/Test/CMakeFiles/cpp_odbc_test.dir/tests/level2/input_u16string_buffer_test.cpp.o
+build *failed* | [40/155] Building CXX object cpp/cpp_odbc/Test/CMakeFiles/cpp_odbc_test.dir/tests/level1/api_test.cpp.o
+build *failed* | [41/155] Building CXX object cpp/cpp_odbc/Test/CMakeFiles/cpp_odbc_test.dir/tests/level2/string_buffer_test.cpp.o
+build *failed* | [42/155] Building CXX object cpp/cpp_odbc/Test/CMakeFiles/cpp_odbc_test.dir/tests/level2/api_test.cpp.o
+build *failed* | [43/155] Building CXX object cpp/cpp_odbc/Test/CMakeFiles/cpp_odbc_test.dir/tests/level2/u16string_buffer_test.cpp.o
+build *failed* | [44/155] Building CXX object cpp/cpp_odbc/Test/CMakeFiles/cpp_odbc_test.dir/tests/level3/raii_environment_test.cpp.o
+build *failed* | [45/155] Building CXX object cpp/cpp_odbc/Test/CMakeFiles/cpp_odbc_test.dir/tests/level3/raii_connection_test.cpp.o
+build *failed* | [46/155] Building CXX object cpp/cpp_odbc/Test/CMakeFiles/cpp_odbc_test.dir/tests/make_environment_test.cpp.o
+build *failed* | [47/155] Building CXX object cpp/cpp_odbc/Test/CMakeFiles/cpp_odbc_test.dir/tests/multi_value_buffer_test.cpp.o
+build *failed* | [48/155] Building CXX object cpp/cpp_odbc/Test/CMakeFiles/cpp_odbc_test.dir/tests/level3/raii_statement_test.cpp.o
+build *failed* | [49/155] Building CXX object cpp/cpp_odbc/Test/CMakeFiles/cpp_odbc_test.dir/tests/level2/level1_connector_test.cpp.o
+build *failed* | [50/155] Building CXX object cpp/cpp_odbc/Test/CMakeFiles/cpp_odbc_test.dir/tests/statement_test.cpp.o
+build *failed* | [51/155] Building CXX object cpp/turbodbc/Library/CMakeFiles/turbodbc.dir/src/buffer_size.cpp.o
+build *failed* | [52/155] Building CXX object cpp/turbodbc/Library/CMakeFiles/turbodbc.dir/src/column.cpp.o
+build *failed* | [53/155] Building CXX object cpp/turbodbc_numpy/Library/CMakeFiles/turbodbc_numpy_support.dir/src/make_numpy_array.cpp.o
+build *failed* | [54/155] Linking CXX executable cpp/cpp_odbc/Test/cpp_odbc_test
+build *failed* | [55/155] Building CXX object cpp/turbodbc/Library/CMakeFiles/turbodbc.dir/src/configuration.cpp.o
+build *failed* | [56/155] Building CXX object cpp/turbodbc/Library/CMakeFiles/turbodbc.dir/src/command.cpp.o
+build *failed* | [57/155] Building CXX object cpp/turbodbc/Library/CMakeFiles/turbodbc.dir/src/connect.cpp.o
+build *failed* | [58/155] Building CXX object cpp/turbodbc/Library/CMakeFiles/turbodbc.dir/src/connection.cpp.o
+build *failed* | [59/155] Building CXX object cpp/turbodbc/Library/CMakeFiles/turbodbc.dir/src/description.cpp.o
+build *failed* | [60/155] Building CXX object cpp/turbodbc/Library/CMakeFiles/turbodbc.dir/src/cursor.cpp.o
+build *failed* | [61/155] Building CXX object cpp/turbodbc/Library/CMakeFiles/turbodbc.dir/src/descriptions/boolean_description.cpp.o
+build *failed* | [62/155] Building CXX object cpp/turbodbc/Library/CMakeFiles/turbodbc.dir/src/descriptions/date_description.cpp.o
+build *failed* | [63/155] Building CXX object cpp/turbodbc/Library/CMakeFiles/turbodbc.dir/src/descriptions/floating_point_description.cpp.o
+build *failed* | [64/155] Building CXX object cpp/turbodbc/Library/CMakeFiles/turbodbc.dir/src/descriptions/integer_description.cpp.o
+build *failed* | [65/155] Building CXX object cpp/turbodbc/Library/CMakeFiles/turbodbc.dir/src/descriptions/string_description.cpp.o
+build *failed* | [66/155] Building CXX object cpp/turbodbc/Library/CMakeFiles/turbodbc.dir/src/errors.cpp.o
+build *failed* | [67/155] Building CXX object cpp/turbodbc/Library/CMakeFiles/turbodbc.dir/src/descriptions/timestamp_description.cpp.o
+build *failed* | [68/155] Building CXX object cpp/turbodbc/Library/CMakeFiles/turbodbc.dir/src/descriptions/unicode_description.cpp.o
+build *failed* | [69/155] Building CXX object cpp/turbodbc/Library/CMakeFiles/turbodbc.dir/src/field_translator.cpp.o
+build *failed* | [70/155] Building CXX object cpp/turbodbc/Library/CMakeFiles/turbodbc.dir/src/field_translators/boolean_translator.cpp.o
+build *failed* | [71/155] Building CXX object cpp/turbodbc/Library/CMakeFiles/turbodbc.dir/src/field_translators/date_translator.cpp.o
+build *failed* | [72/155] Building CXX object cpp/turbodbc/Library/CMakeFiles/turbodbc.dir/src/field_translators/float64_translator.cpp.o
+build *failed* | [73/155] Building CXX object cpp/turbodbc/Library/CMakeFiles/turbodbc.dir/src/field_translators/int64_translator.cpp.o
+build *failed* | [74/155] Building CXX object cpp/turbodbc/Library/CMakeFiles/turbodbc.dir/src/field_translators/string_translator.cpp.o
+build *failed* | [75/155] Building CXX object cpp/turbodbc/Library/CMakeFiles/turbodbc.dir/src/field_translators/timestamp_translator.cpp.o
+build *failed* | [76/155] Building CXX object cpp/turbodbc/Library/CMakeFiles/turbodbc.dir/src/make_description.cpp.o
+build *failed* | [77/155] Building CXX object cpp/turbodbc/Library/CMakeFiles/turbodbc.dir/src/make_field_translator.cpp.o
+build *failed* | [78/155] Building CXX object cpp/turbodbc/Library/CMakeFiles/turbodbc.dir/src/parameter.cpp.o
+build *failed* | [79/155] Building CXX object cpp/turbodbc/Library/CMakeFiles/turbodbc.dir/src/parameter_sets/bound_parameter_set.cpp.o
+build *failed* | [80/155] Building CXX object cpp/turbodbc/Library/CMakeFiles/turbodbc.dir/src/parameter_sets/field_parameter_set.cpp.o
+build *failed* | [81/155] Building CXX object cpp/turbodbc/Library/CMakeFiles/turbodbc.dir/src/parameter_sets/set_field.cpp.o
+build *failed* | [82/155] Building CXX object cpp/turbodbc/Library/CMakeFiles/turbodbc.dir/src/result_sets/bound_result_set.cpp.o
+build *failed* | [83/155] Building CXX object cpp/turbodbc/Library/CMakeFiles/turbodbc.dir/src/result_sets/result_set.cpp.o
+build *failed* | [84/155] Building CXX object cpp/turbodbc/Library/CMakeFiles/turbodbc.dir/src/result_sets/row_based_result_set.cpp.o
+build *failed* | [85/155] Building CXX object cpp/turbodbc/Library/CMakeFiles/turbodbc.dir/src/string_helpers.cpp.o
+build *failed* | [86/155] Building CXX object cpp/turbodbc/Library/CMakeFiles/turbodbc.dir/src/time_helpers.cpp.o
+build *failed* | [87/155] Building CXX object cpp/turbodbc/Library/CMakeFiles/turbodbc.dir/src/result_sets/field_result_set.cpp.o
+build *failed* | [88/155] Building CXX object cpp/turbodbc/Library/CMakeFiles/turbodbc.dir/src/result_sets/double_buffered_result_set.cpp.o
+build *failed* | [89/155] Linking CXX shared library cpp/turbodbc/Library/libturbodbc.so
+build *failed* | [90/155] Building CXX object cpp/turbodbc/Test/CMakeFiles/turbodbc_test.dir/tests/buffer_size_test.cpp.o
+build *failed* | [91/155] Building CXX object cpp/turbodbc/Test/CMakeFiles/turbodbc_test.dir/tests/column_test.cpp.o
+build *failed* | [92/155] Building CXX object cpp/turbodbc/Test/CMakeFiles/turbodbc_test.dir/tests/command_test.cpp.o
+build *failed* | [93/155] Building CXX object cpp/turbodbc/Test/CMakeFiles/turbodbc_test.dir/tests/configuration_test.cpp.o
+build *failed* | [94/155] Building CXX object cpp/turbodbc/Test/CMakeFiles/turbodbc_test.dir/tests/descriptions/boolean_description_test.cpp.o
+build *failed* | [95/155] Building CXX object cpp/turbodbc/Test/CMakeFiles/turbodbc_test.dir/tests/connection_test.cpp.o
+build *failed* | [96/155] Building CXX object cpp/turbodbc/Test/CMakeFiles/turbodbc_test.dir/tests/descriptions/date_description_test.cpp.o
+build *failed* | [97/155] Building CXX object cpp/turbodbc/Test/CMakeFiles/turbodbc_test.dir/tests/descriptions/floating_point_description_test.cpp.o
+build *failed* | [98/155] Building CXX object cpp/turbodbc/Test/CMakeFiles/turbodbc_test.dir/tests/descriptions/integer_description_test.cpp.o
+build *failed* | [99/155] Building CXX object cpp/turbodbc/Test/CMakeFiles/turbodbc_test.dir/tests/descriptions/string_description_test.cpp.o
+build *failed* | [100/155] Building CXX object cpp/turbodbc/Test/CMakeFiles/turbodbc_test.dir/tests/descriptions/timestamp_description_test.cpp.o
+build *failed* | [101/155] Building CXX object cpp/turbodbc/Test/CMakeFiles/turbodbc_test.dir/tests/errors_test.cpp.o
+build *failed* | [102/155] Building CXX object cpp/turbodbc/Test/CMakeFiles/turbodbc_test.dir/tests/descriptions/unicode_description_test.cpp.o
+build *failed* | [103/155] Building CXX object cpp/turbodbc/Test/CMakeFiles/turbodbc_test.dir/tests/field_translator_test.cpp.o
+build *failed* | FAILED: cpp/turbodbc/Test/CMakeFiles/turbodbc_test.dir/tests/field_translator_test.cpp.o
+build *failed* | /opt/conda/envs/turbodbc-dev/bin/x86_64-conda-linux-gnu-c++ -I/src/cpp/turbodbc/Library -I/src/cpp/turbodbc/../cpp_odbc/Library -I/src/cpp/turbodbc/Test -fvisibility-inlines-hidden -std=c++17 -fmessage-length=0 -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem /opt/conda/envs/turbodbc-dev/include -Wall -Wextra -g -O0 -pedantic -fprofile-arcs -ftest-coverage -std=c++11 -MD -MT cpp/turbodbc/Test/CMakeFiles/turbodbc_test.dir/tests/field_translator_test.cpp.o -MF cpp/turbodbc/Test/CMakeFiles/turbodbc_test.dir/tests/field_translator_test.cpp.o.d -o cpp/turbodbc/Test/CMakeFiles/turbodbc_test.dir/tests/field_translator_test.cpp.o -c /src/cpp/turbodbc/Test/tests/field_translator_test.cpp
+build *failed* | In file included from /opt/conda/envs/turbodbc-dev/include/boost/type_index/stl_type_index.hpp:32,
+build *failed* | from /opt/conda/envs/turbodbc-dev/include/boost/type_index.hpp:29,
+build *failed* | from /opt/conda/envs/turbodbc-dev/include/boost/variant/variant.hpp:21,
+build *failed* | from /src/cpp/turbodbc/Library/turbodbc/field.h:3,
+build *failed* | from /src/cpp/turbodbc/Library/turbodbc/field_translator.h:3,
+build *failed* | from /src/cpp/turbodbc/Test/tests/field_translator_test.cpp:1:
+build *failed* | /opt/conda/envs/turbodbc-dev/include/boost/optional/optional.hpp: In instantiation of 'std::basic_ostream<_CharT, _Traits>& boost::operator<<(std::basic_ostream<_CharT, _Traits>&, const boost::optional_detail::optional_tag&) [with CharType = char; CharTrait = std::char_traits<char>]':
+build *failed* | /opt/conda/envs/turbodbc-dev/include/gtest/gtest-printers.h:215:9: required from 'static void testing::internal::internal_stream_operator_without_lexical_name_lookup::StreamPrinter::PrintValue(const T&, std::ostream*) [with T = boost::optional<boost::variant<long int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, double, boost::gregorian::date, boost::posix_time::ptime> >; <template-parameter-1-2> = void; <template-parameter-1-3> = std::basic_ostream<char>&; std::ostream = std::basic_ostream<char>]'
+build *failed* | /opt/conda/envs/turbodbc-dev/include/gtest/gtest-printers.h:312:22: required from 'void testing::internal::PrintWithFallback(const T&, std::ostream*) [with T = boost::optional<boost::variant<long int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, double, boost::gregorian::date, boost::posix_time::ptime> >; std::ostream = std::basic_ostream<char>]'
+build *failed* | /opt/conda/envs/turbodbc-dev/include/gtest/gtest-printers.h:441:30: required from 'void testing::internal::PrintTo(const T&, std::ostream*) [with T = boost::optional<boost::variant<long int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, double, boost::gregorian::date, boost::posix_time::ptime> >; std::ostream = std::basic_ostream<char>]'
+build *failed* | /opt/conda/envs/turbodbc-dev/include/gtest/gtest-printers.h:691:12: required from 'static void testing::internal::UniversalPrinter<T>::Print(const T&, std::ostream*) [with T = boost::optional<boost::variant<long int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, double, boost::gregorian::date, boost::posix_time::ptime> >; std::ostream = std::basic_ostream<char>]'
+build *failed* | /opt/conda/envs/turbodbc-dev/include/gtest/gtest-printers.h:980:30: required from 'void testing::internal::UniversalPrint(const T&, std::ostream*) [with T = boost::optional<boost::variant<long int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, double, boost::gregorian::date, boost::posix_time::ptime> >; std::ostream = std::basic_ostream<char>]'
+build *failed* | /opt/conda/envs/turbodbc-dev/include/gtest/gtest-printers.h:865:19: [ skipping 2 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
+build *failed* | /opt/conda/envs/turbodbc-dev/include/gtest/gtest-printers.h:334:36: required from 'static std::string testing::internal::FormatForComparison<ToPrint, OtherOperand>::Format(const ToPrint&) [with ToPrint = boost::optional<boost::variant<long int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, double, boost::gregorian::date, boost::posix_time::ptime> >; OtherOperand = boost::optional<boost::variant<long int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, double, boost::gregorian::date, boost::posix_time::ptime> >; std::string = std::__cxx11::basic_string<char>]'
+build *failed* | /opt/conda/envs/turbodbc-dev/include/gtest/gtest-printers.h:415:45: required from 'std::string testing::internal::FormatForComparisonFailureMessage(const T1&, const T2&) [with T1 = boost::optional<boost::variant<long int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, double, boost::gregorian::date, boost::posix_time::ptime> >; T2 = boost::optional<boost::variant<long int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, double, boost::gregorian::date, boost::posix_time::ptime> >; std::string = std::__cxx11::basic_string<char>]'
+build *failed* | /opt/conda/envs/turbodbc-dev/include/gtest/gtest.h:1527:53: required from 'testing::AssertionResult testing::internal::CmpHelperEQFailure(const char*, const char*, const T1&, const T2&) [with T1 = boost::optional<boost::variant<long int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, double, boost::gregorian::date, boost::posix_time::ptime> >; T2 = boost::optional<boost::variant<long int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, double, boost::gregorian::date, boost::posix_time::ptime> >]'
+build *failed* | /opt/conda/envs/turbodbc-dev/include/gtest/gtest.h:1549:28: required from 'testing::AssertionResult testing::internal::CmpHelperEQ(const char*, const char*, const T1&, const T2&) [with T1 = boost::optional<boost::variant<long int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, double, boost::gregorian::date, boost::posix_time::ptime> >; T2 = boost::optional<boost::variant<long int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, double, boost::gregorian::date, boost::posix_time::ptime> >]'
+build *failed* | /opt/conda/envs/turbodbc-dev/include/gtest/gtest.h:1564:23: required from 'static testing::AssertionResult testing::internal::EqHelper::Compare(const char*, const char*, const T1&, const T2&) [with T1 = boost::optional<boost::variant<long int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, double, boost::gregorian::date, boost::posix_time::ptime> >; T2 = boost::optional<boost::variant<long int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, double, boost::gregorian::date, boost::posix_time::ptime> >; typename std::enable_if<((! std::is_integral<_Tp>::value) || (! std::is_pointer<_Dp>::value))>::type* <anonymous> = 0]'
+build *failed* | /src/cpp/turbodbc/Test/tests/field_translator_test.cpp:31:2: required from here
+build *failed* | /opt/conda/envs/turbodbc-dev/include/boost/optional/optional.hpp:1596:3: error: static assertion failed: If you want to output boost::optional, include header <boost/optional/optional_io.hpp>
+build *failed* | 1596 | BOOST_STATIC_ASSERT_MSG(sizeof(CharType) == 0, "If you want to output boost::optional, include header <boost/optional/optional_io.hpp>");
+build *failed* | | ^~~~~~~~~~~~~~~~~~~~~~~
+build *failed* | [104/155] Building CXX object cpp/turbodbc/Test/CMakeFiles/turbodbc_test.dir/tests/field_translators/boolean_translator_test.cpp.o
+build *failed* | [105/155] Building CXX object cpp/turbodbc/Test/CMakeFiles/turbodbc_test.dir/tests/field_translators/date_translator_test.cpp.o
+build *failed* | ninja: build stopped: subcommand failed.
+build *failed* | Command /bin/sh -c 'bash -ic " cmake -DBOOST_ROOT=\${CONDA_PREFIX} -DBUILD_COVERAGE=ON -DCMAKE_INSTALL_PREFIX=./dist -DPYTHON_EXECUTABLE=\$(which python) -GNinja .. && ninja && cmake --build . --target install && cd dist && python setup.py sdist "' failed with exit code 1
@raulcd thanks. It broke because of a boost release. I don't know c++ but followed the error message and adding the header solved the issue: https://github.com/blue-yonder/turbodbc/pull/356