SOCI/soci

Memory leak reports in ODBC backend

vadz opened this issue · 2 comments

vadz commented

Running ODBC test under Ubuntu 22.04 results in many memory leak reports, mostly inside SQLDescribeCol(). We need to check if we really forget to free something or if the reports are bogus -- and suppress them in this case.

Full log
Test command: /home/runner/work/soci/soci/_build/bin/soci_odbc_test_postgresql "FILEDSN=/home/runner/work/soci/soci/tests/odbc/test-postgresql.dsn" "--invisibles"
Working Directory: /home/runner/work/soci/soci/_build/tests/odbc
Test timeout computed to be: 10000000
Using ODBC driver version 13.02.0000
===============================================================================
All tests passed (1892 assertions in 59 test cases)


=================================================================
==3508==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 320 byte(s) in 1 object(s) allocated from:
    #0 0x7f2486706867 in __interceptor_malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:145
    #1 0x7f248309847a in QR_Constructor /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/qresult.c:174
    #2 0x7f24830d1b77 in ParseAndDescribeWithLibpq.constprop.0 /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/statement.c:2943
    #3 0x7f248308fdb2 in desc_params_and_sync /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/convert.c:2839
    #4 0x7f248308fdb2 in prepareParameters /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/convert.c:2899
    #5 0x7f248308fdb2 in prepareParameters /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/convert.c:2876
    #6 0x7f248309c529 in SC_describe /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/statement.c:1160
    #7 0x7f248309c529 in SC_describe_ok /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/results.c:95
    #8 0x7f248309c8d5 in PGAPI_DescribeCol /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/results.c:318
    #9 0x7f24830b344f in SQLDescribeCol /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/odbcapi.c:273
    #10 0x7f24865f6f0a in SQLDescribeCol (/lib/x86_64-linux-gnu/libodbc.so.2+0x13f0a)
    #11 0x7f24865a1af8 in soci::odbc_statement_backend::column_size(int) /home/runner/work/soci/soci/src/backends/odbc/statement.cpp:395
    #12 0x7f2486599115 in soci::odbc_standard_into_type_backend::define_by_pos(int&, void*, soci::details::exchange_type) /home/runner/work/soci/soci/src/backends/odbc/standard-into-type.cpp:46
    #13 0x7f2486478ace in soci::details::standard_into_type::define(soci::details::statement_impl&, int&) /home/runner/work/soci/soci/src/core/into-type.cpp:27
    #14 0x7f24865129d7 in soci::details::statement_impl::define_and_bind() /home/runner/work/soci/soci/src/core/statement.cpp:214
    #15 0x7f2486511167 in soci::details::statement_impl::statement_impl(soci::details::prepare_temp_type const&) /home/runner/work/soci/soci/src/core/statement.cpp:57
    #16 0x5616a4e694c4 in soci::statement::statement(soci::details::prepare_temp_type const&) /home/runner/work/soci/soci/include/soci/statement.h:177
    #17 0x5616a4f25633 in soci::details::rowset_impl<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::rowset_impl(soci::details::prepare_temp_type const&) /home/runner/work/soci/soci/include/soci/rowset.h:117
    #18 0x5616a4eebb3c in soci::rowset<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::rowset(soci::details::prepare_temp_type const&) /home/runner/work/soci/soci/include/soci/rowset.h:175
    #19 0x5616a4dd8a2e in test /home/runner/work/soci/soci/tests/common-tests.h:3162
    #20 0x5616a4e62759 in invoke /home/runner/work/soci/soci/tests/catch.hpp:708
    #21 0x5616a4cfa113 in Catch::TestCase::invoke() const /home/runner/work/soci/soci/tests/catch.hpp:8291
    #22 0x5616a4e91846 in Catch::RunContext::invokeActiveTestCase() /home/runner/work/soci/soci/tests/catch.hpp:6852
    #23 0x5616a4e91016 in Catch::RunContext::runCurrentTest(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) /home/runner/work/soci/soci/tests/catch.hpp:6819
    #24 0x5616a4e8deb0 in Catch::RunContext::runTest(Catch::TestCase const&) /home/runner/work/soci/soci/tests/catch.hpp:6632
    #25 0x5616a4cf3440 in Catch::runTests(Catch::Ptr<Catch::Config> const&) /home/runner/work/soci/soci/tests/catch.hpp:6992
    #26 0x5616a4e9303b in Catch::Session::run() /home/runner/work/soci/soci/tests/catch.hpp:7126
    #27 0x5616a4e92cdb in Catch::Session::run(int, char const* const*) /home/runner/work/soci/soci/tests/catch.hpp:7079
    #28 0x5616a4e544db in main /home/runner/work/soci/soci/tests/odbc/test-odbc-postgresql.cpp:315
    #29 0x7f2485e91d8f in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58
    #30 0x7f2485e91e3f in __libc_start_main_impl ../csu/libc-start.c:392
    #31 0x5616a4cf1724 in _start (/home/runner/work/soci/soci/_build/bin/soci_odbc_test_postgresql+0x5a724)

Direct leak of 320 byte(s) in 1 object(s) allocated from:
    #0 0x7f2486706867 in __interceptor_malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:145
    #1 0x7f248309847a in QR_Constructor /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/qresult.c:174
    #2 0x7f24830d1b77 in ParseAndDescribeWithLibpq.constprop.0 /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/statement.c:2943
    #3 0x7f248308fdb2 in desc_params_and_sync /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/convert.c:2839
    #4 0x7f248308fdb2 in prepareParameters /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/convert.c:2899
    #5 0x7f248308fdb2 in prepareParameters /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/convert.c:2876
    #6 0x7f248309c529 in SC_describe /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/statement.c:1160
    #7 0x7f248309c529 in SC_describe_ok /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/results.c:95
    #8 0x7f24830b6cfd in PGAPI_NumResultCols /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/results.c:188
    #9 0x7f24830b6cfd in SQLNumResultCols /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/odbcapi.c:552
    #10 0x7f2486600873 in SQLNumResultCols (/lib/x86_64-linux-gnu/libodbc.so.2+0x1d873)
    #11 0x7f24865a1142 in soci::odbc_statement_backend::prepare_for_describe() /home/runner/work/soci/soci/src/backends/odbc/statement.cpp:322
    #12 0x7f2486515b1e in soci::details::statement_impl::describe() /home/runner/work/soci/soci/src/core/statement.cpp:670
    #13 0x7f248651336e in soci::details::statement_impl::execute(bool) /home/runner/work/soci/soci/src/core/statement.cpp:296
    #14 0x5616a4e69844 in soci::statement::execute(bool) /home/runner/work/soci/soci/include/soci/statement.h:216
    #15 0x5616a4f24087 in soci::details::rowset_impl<soci::row>::rowset_impl(soci::details::prepare_temp_type const&) /home/runner/work/soci/soci/include/soci/rowset.h:120
    #16 0x5616a4eea49e in soci::rowset<soci::row>::rowset(soci::details::prepare_temp_type const&) /home/runner/work/soci/soci/include/soci/rowset.h:175
    #17 0x5616a4e2730a in test /home/runner/work/soci/soci/tests/common-tests.h:4437
    #18 0x5616a4e60475 in invoke /home/runner/work/soci/soci/tests/catch.hpp:708
    #19 0x5616a4cfa113 in Catch::TestCase::invoke() const /home/runner/work/soci/soci/tests/catch.hpp:8291
    #20 0x5616a4e91846 in Catch::RunContext::invokeActiveTestCase() /home/runner/work/soci/soci/tests/catch.hpp:6852
    #21 0x5616a4e91016 in Catch::RunContext::runCurrentTest(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) /home/runner/work/soci/soci/tests/catch.hpp:6819
    #22 0x5616a4e8deb0 in Catch::RunContext::runTest(Catch::TestCase const&) /home/runner/work/soci/soci/tests/catch.hpp:6632
    #23 0x5616a4cf3440 in Catch::runTests(Catch::Ptr<Catch::Config> const&) /home/runner/work/soci/soci/tests/catch.hpp:6992
    #24 0x5616a4e9303b in Catch::Session::run() /home/runner/work/soci/soci/tests/catch.hpp:7126
    #25 0x5616a4e92cdb in Catch::Session::run(int, char const* const*) /home/runner/work/soci/soci/tests/catch.hpp:7079
    #26 0x5616a4e544db in main /home/runner/work/soci/soci/tests/odbc/test-odbc-postgresql.cpp:315
    #27 0x7f2485e91d8f in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58
    #28 0x7f2485e91e3f in __libc_start_main_impl ../csu/libc-start.c:392
    #29 0x5616a4cf1724 in _start (/home/runner/work/soci/soci/_build/bin/soci_odbc_test_postgresql+0x5a724)

Direct leak of 320 byte(s) in 1 object(s) allocated from:
    #0 0x7f2486706867 in __interceptor_malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:145
    #1 0x7f248309847a in QR_Constructor /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/qresult.c:174
    #2 0x7f24830d1b77 in ParseAndDescribeWithLibpq.constprop.0 /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/statement.c:2943
    #3 0x7f248308fdb2 in desc_params_and_sync /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/convert.c:2839
    #4 0x7f248308fdb2 in prepareParameters /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/convert.c:2899
    #5 0x7f248308fdb2 in prepareParameters /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/convert.c:2876
    #6 0x7f24830afb5e in libpq_bind_and_exec /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/statement.c:2675
    #7 0x7f24830afb5e in SC_execute /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/statement.c:2015
    #8 0x7f24830929b1 in Exec_with_parameters_resolved /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/execute.c:518
    #9 0x7f24830997b2 in PGAPI_Execute /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/execute.c:1182
    #10 0x7f24830b39d7 in SQLExecute /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/odbcapi.c:352
    #11 0x7f24865f48de in SQLExecute (/lib/x86_64-linux-gnu/libodbc.so.2+0x118de)
    #12 0x7f248659fc37 in soci::odbc_statement_backend::execute(int) /home/runner/work/soci/soci/src/backends/odbc/statement.cpp:154
    #13 0x7f24865134cb in soci::details::statement_impl::execute(bool) /home/runner/work/soci/soci/src/core/statement.cpp:319
    #14 0x5616a4e69844 in soci::statement::execute(bool) /home/runner/work/soci/soci/include/soci/statement.h:216
    #15 0x7f24864876da in soci::details::ref_counted_statement::final_action() /home/runner/work/soci/soci/src/core/ref-counted-statement.cpp:54
    #16 0x7f248647f35b in soci::details::ref_counted_statement_base::dec_ref() /home/runner/work/soci/soci/include/soci/ref-counted-statement.h:45
    #17 0x7f248647cb99 in soci::details::once_temp_type::~once_temp_type() /home/runner/work/soci/soci/src/core/once-temp-type.cpp:40
    #18 0x5616a4eb7d45 in soci::tests::table_creator_base::drop() /home/runner/work/soci/soci/tests/common-tests.h:305
    #19 0x5616a4eb7c0e in soci::tests::table_creator_base::~table_creator_base() /home/runner/work/soci/soci/tests/common-tests.h:299
    #20 0x5616a4fbfa5a in table_creator_one::~table_creator_one() /home/runner/work/soci/soci/tests/odbc/test-odbc-postgresql.cpp:89
    #21 0x5616a4fbfa79 in table_creator_one::~table_creator_one() /home/runner/work/soci/soci/tests/odbc/test-odbc-postgresql.cpp:89
    #22 0x5616a4f15192 in std::default_delete<soci::tests::table_creator_base>::operator()(soci::tests::table_creator_base*) const /usr/include/c++/11/bits/unique_ptr.h:85
    #23 0x5616a4edb7fe in std::unique_ptr<soci::tests::table_creator_base, std::default_delete<soci::tests::table_creator_base> >::~unique_ptr() /usr/include/c++/11/bits/unique_ptr.h:361
    #24 0x5616a4e217fc in soci::tests::test_cases::run_query_transformation_test(soci::tests::test_context_base const&, soci::session&) /home/runner/work/soci/soci/tests/common-tests.h:4289
    #25 0x5616a4e226b8 in test /home/runner/work/soci/soci/tests/common-tests.h:4294
    #26 0x5616a4e610eb in invoke /home/runner/work/soci/soci/tests/catch.hpp:708
    #27 0x5616a4cfa113 in Catch::TestCase::invoke() const /home/runner/work/soci/soci/tests/catch.hpp:8291
    #28 0x5616a4e91846 in Catch::RunContext::invokeActiveTestCase() /home/runner/work/soci/soci/tests/catch.hpp:6852
    #29 0x5616a4e91016 in Catch::RunContext::runCurrentTest(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) /home/runner/work/soci/soci/tests/catch.hpp:6819
    #30 0x5616a4e8deb0 in Catch::RunContext::runTest(Catch::TestCase const&) /home/runner/work/soci/soci/tests/catch.hpp:6632
    #31 0x5616a4cf3440 in Catch::runTests(Catch::Ptr<Catch::Config> const&) /home/runner/work/soci/soci/tests/catch.hpp:6992

Direct leak of 320 byte(s) in 1 object(s) allocated from:
    #0 0x7f2486706867 in __interceptor_malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:145
    #1 0x7f248309847a in QR_Constructor /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/qresult.c:174
    #2 0x7f24830d1b77 in ParseAndDescribeWithLibpq.constprop.0 /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/statement.c:2943
    #3 0x7f248308fdb2 in desc_params_and_sync /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/convert.c:2839
    #4 0x7f248308fdb2 in prepareParameters /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/convert.c:2899
    #5 0x7f248308fdb2 in prepareParameters /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/convert.c:2876
    #6 0x7f24830afb5e in libpq_bind_and_exec /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/statement.c:2675
    #7 0x7f24830afb5e in SC_execute /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/statement.c:2015
    #8 0x7f24830929b1 in Exec_with_parameters_resolved /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/execute.c:518
    #9 0x7f24830997b2 in PGAPI_Execute /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/execute.c:1182
    #10 0x7f24830b39d7 in SQLExecute /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/odbcapi.c:352
    #11 0x7f24865f48de in SQLExecute (/lib/x86_64-linux-gnu/libodbc.so.2+0x118de)
    #12 0x7f248659fc37 in soci::odbc_statement_backend::execute(int) /home/runner/work/soci/soci/src/backends/odbc/statement.cpp:154
    #13 0x7f24865134cb in soci::details::statement_impl::execute(bool) /home/runner/work/soci/soci/src/core/statement.cpp:319
    #14 0x5616a4e69844 in soci::statement::execute(bool) /home/runner/work/soci/soci/include/soci/statement.h:216
    #15 0x7f24864876da in soci::details::ref_counted_statement::final_action() /home/runner/work/soci/soci/src/core/ref-counted-statement.cpp:54
    #16 0x7f248647f35b in soci::details::ref_counted_statement_base::dec_ref() /home/runner/work/soci/soci/include/soci/ref-counted-statement.h:45
    #17 0x7f248647cb99 in soci::details::once_temp_type::~once_temp_type() /home/runner/work/soci/soci/src/core/once-temp-type.cpp:40
    #18 0x5616a4eb7d45 in soci::tests::table_creator_base::drop() /home/runner/work/soci/soci/tests/common-tests.h:305
    #19 0x5616a4eb7c0e in soci::tests::table_creator_base::~table_creator_base() /home/runner/work/soci/soci/tests/common-tests.h:299
    #20 0x5616a4fbfa5a in table_creator_one::~table_creator_one() /home/runner/work/soci/soci/tests/odbc/test-odbc-postgresql.cpp:89
    #21 0x5616a4fbfa79 in table_creator_one::~table_creator_one() /home/runner/work/soci/soci/tests/odbc/test-odbc-postgresql.cpp:89
    #22 0x5616a4f15192 in std::default_delete<soci::tests::table_creator_base>::operator()(soci::tests::table_creator_base*) const /usr/include/c++/11/bits/unique_ptr.h:85
    #23 0x5616a4edb7fe in std::unique_ptr<soci::tests::table_creator_base, std::default_delete<soci::tests::table_creator_base> >::~unique_ptr() /usr/include/c++/11/bits/unique_ptr.h:361
    #24 0x5616a4e217fc in soci::tests::test_cases::run_query_transformation_test(soci::tests::test_context_base const&, soci::session&) /home/runner/work/soci/soci/tests/common-tests.h:4289
    #25 0x5616a4e22983 in test /home/runner/work/soci/soci/tests/common-tests.h:4310
    #26 0x5616a4e60e6d in invoke /home/runner/work/soci/soci/tests/catch.hpp:708
    #27 0x5616a4cfa113 in Catch::TestCase::invoke() const /home/runner/work/soci/soci/tests/catch.hpp:8291
    #28 0x5616a4e91846 in Catch::RunContext::invokeActiveTestCase() /home/runner/work/soci/soci/tests/catch.hpp:6852
    #29 0x5616a4e91016 in Catch::RunContext::runCurrentTest(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) /home/runner/work/soci/soci/tests/catch.hpp:6819
    #30 0x5616a4e8deb0 in Catch::RunContext::runTest(Catch::TestCase const&) /home/runner/work/soci/soci/tests/catch.hpp:6632
    #31 0x5616a4cf3440 in Catch::runTests(Catch::Ptr<Catch::Config> const&) /home/runner/work/soci/soci/tests/catch.hpp:6992

Indirect leak of 32 byte(s) in 1 object(s) allocated from:
    #0 0x7f2486706a37 in __interceptor_calloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:154
    #1 0x7f24830d2372 in CI_set_num_fields /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/columninfo.c:146
    #2 0x7f24830d2372 in CI_read_fields_from_pgres /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/columninfo.c:74
    #3 0x7f24830d2372 in ParseAndDescribeWithLibpq.constprop.0 /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/statement.c:3028
    #4 0x7f248308fdb2 in desc_params_and_sync /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/convert.c:2839
    #5 0x7f248308fdb2 in prepareParameters /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/convert.c:2899
    #6 0x7f248308fdb2 in prepareParameters /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/convert.c:2876
    #7 0x7f248309c529 in SC_describe /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/statement.c:1160
    #8 0x7f248309c529 in SC_describe_ok /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/results.c:95
    #9 0x7f248309c8d5 in PGAPI_DescribeCol /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/results.c:318
    #10 0x7f24830b344f in SQLDescribeCol /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/odbcapi.c:273
    #11 0x7f24865f6f0a in SQLDescribeCol (/lib/x86_64-linux-gnu/libodbc.so.2+0x13f0a)
    #12 0x7f24865a1af8 in soci::odbc_statement_backend::column_size(int) /home/runner/work/soci/soci/src/backends/odbc/statement.cpp:395
    #13 0x7f2486599115 in soci::odbc_standard_into_type_backend::define_by_pos(int&, void*, soci::details::exchange_type) /home/runner/work/soci/soci/src/backends/odbc/standard-into-type.cpp:46
    #14 0x7f2486478ace in soci::details::standard_into_type::define(soci::details::statement_impl&, int&) /home/runner/work/soci/soci/src/core/into-type.cpp:27
    #15 0x7f24865129d7 in soci::details::statement_impl::define_and_bind() /home/runner/work/soci/soci/src/core/statement.cpp:214
    #16 0x7f2486511167 in soci::details::statement_impl::statement_impl(soci::details::prepare_temp_type const&) /home/runner/work/soci/soci/src/core/statement.cpp:57
    #17 0x5616a4e694c4 in soci::statement::statement(soci::details::prepare_temp_type const&) /home/runner/work/soci/soci/include/soci/statement.h:177
    #18 0x5616a4f25633 in soci::details::rowset_impl<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::rowset_impl(soci::details::prepare_temp_type const&) /home/runner/work/soci/soci/include/soci/rowset.h:117
    #19 0x5616a4eebb3c in soci::rowset<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::rowset(soci::details::prepare_temp_type const&) /home/runner/work/soci/soci/include/soci/rowset.h:175
    #20 0x5616a4dd8a2e in test /home/runner/work/soci/soci/tests/common-tests.h:3162
    #21 0x5616a4e62759 in invoke /home/runner/work/soci/soci/tests/catch.hpp:708
    #22 0x5616a4cfa113 in Catch::TestCase::invoke() const /home/runner/work/soci/soci/tests/catch.hpp:8291
    #23 0x5616a4e91846 in Catch::RunContext::invokeActiveTestCase() /home/runner/work/soci/soci/tests/catch.hpp:6852
    #24 0x5616a4e91016 in Catch::RunContext::runCurrentTest(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) /home/runner/work/soci/soci/tests/catch.hpp:6819
    #25 0x5616a4e8deb0 in Catch::RunContext::runTest(Catch::TestCase const&) /home/runner/work/soci/soci/tests/catch.hpp:6632
    #26 0x5616a4cf3440 in Catch::runTests(Catch::Ptr<Catch::Config> const&) /home/runner/work/soci/soci/tests/catch.hpp:6992
    #27 0x5616a4e9303b in Catch::Session::run() /home/runner/work/soci/soci/tests/catch.hpp:7126
    #28 0x5616a4e92cdb in Catch::Session::run(int, char const* const*) /home/runner/work/soci/soci/tests/catch.hpp:7079
    #29 0x5616a4e544db in main /home/runner/work/soci/soci/tests/odbc/test-odbc-postgresql.cpp:315
    #30 0x7f2485e91d8f in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58
    #31 0x7f2485e91e3f in __libc_start_main_impl ../csu/libc-start.c:392
    #32 0x5616a4cf1724 in _start (/home/runner/work/soci/soci/_build/bin/soci_odbc_test_postgresql+0x5a724)

Indirect leak of 16 byte(s) in 1 object(s) allocated from:
    #0 0x7f2486706867 in __interceptor_malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:145
    #1 0x7f24830984a5 in CI_Constructor /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/columninfo.c:30
    #2 0x7f24830984a5 in QR_Constructor /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/qresult.c:185
    #3 0x7f24830d1b77 in ParseAndDescribeWithLibpq.constprop.0 /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/statement.c:2943
    #4 0x7f248308fdb2 in desc_params_and_sync /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/convert.c:2839
    #5 0x7f248308fdb2 in prepareParameters /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/convert.c:2899
    #6 0x7f248308fdb2 in prepareParameters /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/convert.c:2876
    #7 0x7f248309c529 in SC_describe /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/statement.c:1160
    #8 0x7f248309c529 in SC_describe_ok /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/results.c:95
    #9 0x7f248309c8d5 in PGAPI_DescribeCol /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/results.c:318
    #10 0x7f24830b344f in SQLDescribeCol /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/odbcapi.c:273
    #11 0x7f24865f6f0a in SQLDescribeCol (/lib/x86_64-linux-gnu/libodbc.so.2+0x13f0a)
    #12 0x7f24865a1af8 in soci::odbc_statement_backend::column_size(int) /home/runner/work/soci/soci/src/backends/odbc/statement.cpp:395
    #13 0x7f2486599115 in soci::odbc_standard_into_type_backend::define_by_pos(int&, void*, soci::details::exchange_type) /home/runner/work/soci/soci/src/backends/odbc/standard-into-type.cpp:46
    #14 0x7f2486478ace in soci::details::standard_into_type::define(soci::details::statement_impl&, int&) /home/runner/work/soci/soci/src/core/into-type.cpp:27
    #15 0x7f24865129d7 in soci::details::statement_impl::define_and_bind() /home/runner/work/soci/soci/src/core/statement.cpp:214
    #16 0x7f2486511167 in soci::details::statement_impl::statement_impl(soci::details::prepare_temp_type const&) /home/runner/work/soci/soci/src/core/statement.cpp:57
    #17 0x5616a4e694c4 in soci::statement::statement(soci::details::prepare_temp_type const&) /home/runner/work/soci/soci/include/soci/statement.h:177
    #18 0x5616a4f25633 in soci::details::rowset_impl<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::rowset_impl(soci::details::prepare_temp_type const&) /home/runner/work/soci/soci/include/soci/rowset.h:117
    #19 0x5616a4eebb3c in soci::rowset<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::rowset(soci::details::prepare_temp_type const&) /home/runner/work/soci/soci/include/soci/rowset.h:175
    #20 0x5616a4dd8a2e in test /home/runner/work/soci/soci/tests/common-tests.h:3162
    #21 0x5616a4e62759 in invoke /home/runner/work/soci/soci/tests/catch.hpp:708
    #22 0x5616a4cfa113 in Catch::TestCase::invoke() const /home/runner/work/soci/soci/tests/catch.hpp:8291
    #23 0x5616a4e91846 in Catch::RunContext::invokeActiveTestCase() /home/runner/work/soci/soci/tests/catch.hpp:6852
    #24 0x5616a4e91016 in Catch::RunContext::runCurrentTest(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) /home/runner/work/soci/soci/tests/catch.hpp:6819
    #25 0x5616a4e8deb0 in Catch::RunContext::runTest(Catch::TestCase const&) /home/runner/work/soci/soci/tests/catch.hpp:6632
    #26 0x5616a4cf3440 in Catch::runTests(Catch::Ptr<Catch::Config> const&) /home/runner/work/soci/soci/tests/catch.hpp:6992
    #27 0x5616a4e9303b in Catch::Session::run() /home/runner/work/soci/soci/tests/catch.hpp:7126
    #28 0x5616a4e92cdb in Catch::Session::run(int, char const* const*) /home/runner/work/soci/soci/tests/catch.hpp:7079
    #29 0x5616a4e544db in main /home/runner/work/soci/soci/tests/odbc/test-odbc-postgresql.cpp:315
    #30 0x7f2485e91d8f in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58
    #31 0x7f2485e91e3f in __libc_start_main_impl ../csu/libc-start.c:392
    #32 0x5616a4cf1724 in _start (/home/runner/work/soci/soci/_build/bin/soci_odbc_test_postgresql+0x5a724)

Indirect leak of 16 byte(s) in 1 object(s) allocated from:
    #0 0x7f2486706867 in __interceptor_malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:145
    #1 0x7f24830984a5 in CI_Constructor /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/columninfo.c:30
    #2 0x7f24830984a5 in QR_Constructor /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/qresult.c:185
    #3 0x7f24830d1b77 in ParseAndDescribeWithLibpq.constprop.0 /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/statement.c:2943
    #4 0x7f248308fdb2 in desc_params_and_sync /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/convert.c:2839
    #5 0x7f248308fdb2 in prepareParameters /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/convert.c:2899
    #6 0x7f248308fdb2 in prepareParameters /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/convert.c:2876
    #7 0x7f248309c529 in SC_describe /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/statement.c:1160
    #8 0x7f248309c529 in SC_describe_ok /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/results.c:95
    #9 0x7f24830b6cfd in PGAPI_NumResultCols /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/results.c:188
    #10 0x7f24830b6cfd in SQLNumResultCols /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/odbcapi.c:552
    #11 0x7f2486600873 in SQLNumResultCols (/lib/x86_64-linux-gnu/libodbc.so.2+0x1d873)
    #12 0x7f24865a1142 in soci::odbc_statement_backend::prepare_for_describe() /home/runner/work/soci/soci/src/backends/odbc/statement.cpp:322
    #13 0x7f2486515b1e in soci::details::statement_impl::describe() /home/runner/work/soci/soci/src/core/statement.cpp:670
    #14 0x7f248651336e in soci::details::statement_impl::execute(bool) /home/runner/work/soci/soci/src/core/statement.cpp:296
    #15 0x5616a4e69844 in soci::statement::execute(bool) /home/runner/work/soci/soci/include/soci/statement.h:216
    #16 0x5616a4f24087 in soci::details::rowset_impl<soci::row>::rowset_impl(soci::details::prepare_temp_type const&) /home/runner/work/soci/soci/include/soci/rowset.h:120
    #17 0x5616a4eea49e in soci::rowset<soci::row>::rowset(soci::details::prepare_temp_type const&) /home/runner/work/soci/soci/include/soci/rowset.h:175
    #18 0x5616a4e2730a in test /home/runner/work/soci/soci/tests/common-tests.h:4437
    #19 0x5616a4e60475 in invoke /home/runner/work/soci/soci/tests/catch.hpp:708
    #20 0x5616a4cfa113 in Catch::TestCase::invoke() const /home/runner/work/soci/soci/tests/catch.hpp:8291
    #21 0x5616a4e91846 in Catch::RunContext::invokeActiveTestCase() /home/runner/work/soci/soci/tests/catch.hpp:6852
    #22 0x5616a4e91016 in Catch::RunContext::runCurrentTest(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) /home/runner/work/soci/soci/tests/catch.hpp:6819
    #23 0x5616a4e8deb0 in Catch::RunContext::runTest(Catch::TestCase const&) /home/runner/work/soci/soci/tests/catch.hpp:6632
    #24 0x5616a4cf3440 in Catch::runTests(Catch::Ptr<Catch::Config> const&) /home/runner/work/soci/soci/tests/catch.hpp:6992
    #25 0x5616a4e9303b in Catch::Session::run() /home/runner/work/soci/soci/tests/catch.hpp:7126
    #26 0x5616a4e92cdb in Catch::Session::run(int, char const* const*) /home/runner/work/soci/soci/tests/catch.hpp:7079
    #27 0x5616a4e544db in main /home/runner/work/soci/soci/tests/odbc/test-odbc-postgresql.cpp:315
    #28 0x7f2485e91d8f in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58
    #29 0x7f2485e91e3f in __libc_start_main_impl ../csu/libc-start.c:392
    #30 0x5616a4cf1724 in _start (/home/runner/work/soci/soci/_build/bin/soci_odbc_test_postgresql+0x5a724)

Indirect leak of 16 byte(s) in 1 object(s) allocated from:
    #0 0x7f2486706867 in __interceptor_malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:145
    #1 0x7f24830984a5 in CI_Constructor /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/columninfo.c:30
    #2 0x7f24830984a5 in QR_Constructor /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/qresult.c:185
    #3 0x7f24830d1b77 in ParseAndDescribeWithLibpq.constprop.0 /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/statement.c:2943
    #4 0x7f248308fdb2 in desc_params_and_sync /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/convert.c:2839
    #5 0x7f248308fdb2 in prepareParameters /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/convert.c:2899
    #6 0x7f248308fdb2 in prepareParameters /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/convert.c:2876
    #7 0x7f24830afb5e in libpq_bind_and_exec /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/statement.c:2675
    #8 0x7f24830afb5e in SC_execute /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/statement.c:2015
    #9 0x7f24830929b1 in Exec_with_parameters_resolved /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/execute.c:518
    #10 0x7f24830997b2 in PGAPI_Execute /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/execute.c:1182
    #11 0x7f24830b39d7 in SQLExecute /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/odbcapi.c:352
    #12 0x7f24865f48de in SQLExecute (/lib/x86_64-linux-gnu/libodbc.so.2+0x118de)
    #13 0x7f248659fc37 in soci::odbc_statement_backend::execute(int) /home/runner/work/soci/soci/src/backends/odbc/statement.cpp:154
    #14 0x7f24865134cb in soci::details::statement_impl::execute(bool) /home/runner/work/soci/soci/src/core/statement.cpp:319
    #15 0x5616a4e69844 in soci::statement::execute(bool) /home/runner/work/soci/soci/include/soci/statement.h:216
    #16 0x7f24864876da in soci::details::ref_counted_statement::final_action() /home/runner/work/soci/soci/src/core/ref-counted-statement.cpp:54
    #17 0x7f248647f35b in soci::details::ref_counted_statement_base::dec_ref() /home/runner/work/soci/soci/include/soci/ref-counted-statement.h:45
    #18 0x7f248647cb99 in soci::details::once_temp_type::~once_temp_type() /home/runner/work/soci/soci/src/core/once-temp-type.cpp:40
    #19 0x5616a4eb7d45 in soci::tests::table_creator_base::drop() /home/runner/work/soci/soci/tests/common-tests.h:305
    #20 0x5616a4eb7c0e in soci::tests::table_creator_base::~table_creator_base() /home/runner/work/soci/soci/tests/common-tests.h:299
    #21 0x5616a4fbfa5a in table_creator_one::~table_creator_one() /home/runner/work/soci/soci/tests/odbc/test-odbc-postgresql.cpp:89
    #22 0x5616a4fbfa79 in table_creator_one::~table_creator_one() /home/runner/work/soci/soci/tests/odbc/test-odbc-postgresql.cpp:89
    #23 0x5616a4f15192 in std::default_delete<soci::tests::table_creator_base>::operator()(soci::tests::table_creator_base*) const /usr/include/c++/11/bits/unique_ptr.h:85
    #24 0x5616a4edb7fe in std::unique_ptr<soci::tests::table_creator_base, std::default_delete<soci::tests::table_creator_base> >::~unique_ptr() /usr/include/c++/11/bits/unique_ptr.h:361
    #25 0x5616a4e217fc in soci::tests::test_cases::run_query_transformation_test(soci::tests::test_context_base const&, soci::session&) /home/runner/work/soci/soci/tests/common-tests.h:4289
    #26 0x5616a4e22983 in test /home/runner/work/soci/soci/tests/common-tests.h:4310
    #27 0x5616a4e60e6d in invoke /home/runner/work/soci/soci/tests/catch.hpp:708
    #28 0x5616a4cfa113 in Catch::TestCase::invoke() const /home/runner/work/soci/soci/tests/catch.hpp:8291
    #29 0x5616a4e91846 in Catch::RunContext::invokeActiveTestCase() /home/runner/work/soci/soci/tests/catch.hpp:6852
    #30 0x5616a4e91016 in Catch::RunContext::runCurrentTest(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) /home/runner/work/soci/soci/tests/catch.hpp:6819
    #31 0x5616a4e8deb0 in Catch::RunContext::runTest(Catch::TestCase const&) /home/runner/work/soci/soci/tests/catch.hpp:6632
    #32 0x5616a4cf3440 in Catch::runTests(Catch::Ptr<Catch::Config> const&) /home/runner/work/soci/soci/tests/catch.hpp:6992

Indirect leak of 16 byte(s) in 1 object(s) allocated from:
    #0 0x7f2486706867 in __interceptor_malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:145
    #1 0x7f24830984a5 in CI_Constructor /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/columninfo.c:30
    #2 0x7f24830984a5 in QR_Constructor /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/qresult.c:185
    #3 0x7f24830d1b77 in ParseAndDescribeWithLibpq.constprop.0 /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/statement.c:2943
    #4 0x7f248308fdb2 in desc_params_and_sync /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/convert.c:2839
    #5 0x7f248308fdb2 in prepareParameters /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/convert.c:2899
    #6 0x7f248308fdb2 in prepareParameters /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/convert.c:2876
    #7 0x7f24830afb5e in libpq_bind_and_exec /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/statement.c:2675
    #8 0x7f24830afb5e in SC_execute /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/statement.c:2015
    #9 0x7f24830929b1 in Exec_with_parameters_resolved /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/execute.c:518
    #10 0x7f24830997b2 in PGAPI_Execute /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/execute.c:1182
    #11 0x7f24830b39d7 in SQLExecute /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/odbcapi.c:352
    #12 0x7f24865f48de in SQLExecute (/lib/x86_64-linux-gnu/libodbc.so.2+0x118de)
    #13 0x7f248659fc37 in soci::odbc_statement_backend::execute(int) /home/runner/work/soci/soci/src/backends/odbc/statement.cpp:154
    #14 0x7f24865134cb in soci::details::statement_impl::execute(bool) /home/runner/work/soci/soci/src/core/statement.cpp:319
    #15 0x5616a4e69844 in soci::statement::execute(bool) /home/runner/work/soci/soci/include/soci/statement.h:216
    #16 0x7f24864876da in soci::details::ref_counted_statement::final_action() /home/runner/work/soci/soci/src/core/ref-counted-statement.cpp:54
    #17 0x7f248647f35b in soci::details::ref_counted_statement_base::dec_ref() /home/runner/work/soci/soci/include/soci/ref-counted-statement.h:45
    #18 0x7f248647cb99 in soci::details::once_temp_type::~once_temp_type() /home/runner/work/soci/soci/src/core/once-temp-type.cpp:40
    #19 0x5616a4eb7d45 in soci::tests::table_creator_base::drop() /home/runner/work/soci/soci/tests/common-tests.h:305
    #20 0x5616a4eb7c0e in soci::tests::table_creator_base::~table_creator_base() /home/runner/work/soci/soci/tests/common-tests.h:299
    #21 0x5616a4fbfa5a in table_creator_one::~table_creator_one() /home/runner/work/soci/soci/tests/odbc/test-odbc-postgresql.cpp:89
    #22 0x5616a4fbfa79 in table_creator_one::~table_creator_one() /home/runner/work/soci/soci/tests/odbc/test-odbc-postgresql.cpp:89
    #23 0x5616a4f15192 in std::default_delete<soci::tests::table_creator_base>::operator()(soci::tests::table_creator_base*) const /usr/include/c++/11/bits/unique_ptr.h:85
    #24 0x5616a4edb7fe in std::unique_ptr<soci::tests::table_creator_base, std::default_delete<soci::tests::table_creator_base> >::~unique_ptr() /usr/include/c++/11/bits/unique_ptr.h:361
    #25 0x5616a4e217fc in soci::tests::test_cases::run_query_transformation_test(soci::tests::test_context_base const&, soci::session&) /home/runner/work/soci/soci/tests/common-tests.h:4289
    #26 0x5616a4e226b8 in test /home/runner/work/soci/soci/tests/common-tests.h:4294
    #27 0x5616a4e610eb in invoke /home/runner/work/soci/soci/tests/catch.hpp:708
    #28 0x5616a4cfa113 in Catch::TestCase::invoke() const /home/runner/work/soci/soci/tests/catch.hpp:8291
    #29 0x5616a4e91846 in Catch::RunContext::invokeActiveTestCase() /home/runner/work/soci/soci/tests/catch.hpp:6852
    #30 0x5616a4e91016 in Catch::RunContext::runCurrentTest(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) /home/runner/work/soci/soci/tests/catch.hpp:6819
    #31 0x5616a4e8deb0 in Catch::RunContext::runTest(Catch::TestCase const&) /home/runner/work/soci/soci/tests/catch.hpp:6632
    #32 0x5616a4cf3440 in Catch::runTests(Catch::Ptr<Catch::Config> const&) /home/runner/work/soci/soci/tests/catch.hpp:6992

Indirect leak of 4 byte(s) in 1 object(s) allocated from:
    #0 0x7f24866ad9a7 in __interceptor_strdup ../../../../src/libsanitizer/asan/asan_interceptors.cpp:454
    #1 0x7f24830d24ee in CI_set_field_info /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/columninfo.c:160
    #2 0x7f24830d24ee in CI_set_field_info /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/columninfo.c:151
    #3 0x7f24830d24ee in CI_read_fields_from_pgres /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/columninfo.c:108
    #4 0x7f24830d24ee in ParseAndDescribeWithLibpq.constprop.0 /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/statement.c:3028
    #5 0x7f248308fdb2 in desc_params_and_sync /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/convert.c:2839
    #6 0x7f248308fdb2 in prepareParameters /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/convert.c:2899
    #7 0x7f248308fdb2 in prepareParameters /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/convert.c:2876
    #8 0x7f248309c529 in SC_describe /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/statement.c:1160
    #9 0x7f248309c529 in SC_describe_ok /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/results.c:95
    #10 0x7f248309c8d5 in PGAPI_DescribeCol /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/results.c:318
    #11 0x7f24830b344f in SQLDescribeCol /build/psqlodbc-vOSmp8/psqlodbc-13.02.0000/odbcapi.c:273
    #12 0x7f24865f6f0a in SQLDescribeCol (/lib/x86_64-linux-gnu/libodbc.so.2+0x13f0a)
    #13 0x7f24865a1af8 in soci::odbc_statement_backend::column_size(int) /home/runner/work/soci/soci/src/backends/odbc/statement.cpp:395
    #14 0x7f2486599115 in soci::odbc_standard_into_type_backend::define_by_pos(int&, void*, soci::details::exchange_type) /home/runner/work/soci/soci/src/backends/odbc/standard-into-type.cpp:46
    #15 0x7f2486478ace in soci::details::standard_into_type::define(soci::details::statement_impl&, int&) /home/runner/work/soci/soci/src/core/into-type.cpp:27
    #16 0x7f24865129d7 in soci::details::statement_impl::define_and_bind() /home/runner/work/soci/soci/src/core/statement.cpp:214
    #17 0x7f2486511167 in soci::details::statement_impl::statement_impl(soci::details::prepare_temp_type const&) /home/runner/work/soci/soci/src/core/statement.cpp:57
    #18 0x5616a4e694c4 in soci::statement::statement(soci::details::prepare_temp_type const&) /home/runner/work/soci/soci/include/soci/statement.h:177
    #19 0x5616a4f25633 in soci::details::rowset_impl<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::rowset_impl(soci::details::prepare_temp_type const&) /home/runner/work/soci/soci/include/soci/rowset.h:117
    #20 0x5616a4eebb3c in soci::rowset<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::rowset(soci::details::prepare_temp_type const&) /home/runner/work/soci/soci/include/soci/rowset.h:175
    #21 0x5616a4dd8a2e in test /home/runner/work/soci/soci/tests/common-tests.h:3162
    #22 0x5616a4e62759 in invoke /home/runner/work/soci/soci/tests/catch.hpp:708
    #23 0x5616a4cfa113 in Catch::TestCase::invoke() const /home/runner/work/soci/soci/tests/catch.hpp:8291
    #24 0x5616a4e91846 in Catch::RunContext::invokeActiveTestCase() /home/runner/work/soci/soci/tests/catch.hpp:6852
    #25 0x5616a4e91016 in Catch::RunContext::runCurrentTest(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) /home/runner/work/soci/soci/tests/catch.hpp:6819
    #26 0x5616a4e8deb0 in Catch::RunContext::runTest(Catch::TestCase const&) /home/runner/work/soci/soci/tests/catch.hpp:6632
    #27 0x5616a4cf3440 in Catch::runTests(Catch::Ptr<Catch::Config> const&) /home/runner/work/soci/soci/tests/catch.hpp:6992
    #28 0x5616a4e9303b in Catch::Session::run() /home/runner/work/soci/soci/tests/catch.hpp:7126
    #29 0x5616a4e92cdb in Catch::Session::run(int, char const* const*) /home/runner/work/soci/soci/tests/catch.hpp:7079
    #30 0x5616a4e544db in main /home/runner/work/soci/soci/tests/odbc/test-odbc-postgresql.cpp:315
    #31 0x7f2485e91d8f in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58
    #32 0x7f2485e91e3f in __libc_start_main_impl ../csu/libc-start.c:392
    #33 0x5616a4cf1724 in _start (/home/runner/work/soci/soci/_build/bin/soci_odbc_test_postgresql+0x5a724)

SUMMARY: AddressSanitizer: 1380 byte(s) leaked in 10 allocation(s).
vadz commented

Weirdly enough, running the build in Ubuntu 18.04 container also results in memory leak reports, but different ones: now we get (variable-sized but pretty big) leaks inside SQLDriverConnect().

I'm leaving my attempts to fix this in vadz/ci-odbc-container branch, but it looks like it would be about as simple to fix the leaks under 22.04 than in 18.04 container.