Hi, it seems that the RequestHandlerTest.ResponseUserDataInPreRouting has been failing with a segmentation fault (SIGSEGV) since its introduction; a bisect pointed me to commit 43cf182, which is the one introducing the test itself.
Compiling the code with the address sanitizer gives some more hints:
Running main() from ./googletest/src/gtest_main.cc
Note: Google Test filter = RequestHandlerTest.ResponseUserDataInPreRouting
[==========] Running 1 test from 1 test suite.
[----------] Global test environment set-up.
[----------] 1 test from RequestHandlerTest
[ RUN ] RequestHandlerTest.ResponseUserDataInPreRouting
AddressSanitizer:DEADLYSIGNAL
=================================================================
==75245==ERROR: AddressSanitizer: SEGV on unknown address (pc 0x7f262db3bab7 bp 0x7b26218db050 sp 0x7b26218db040 T2)
==75245==The signal is caused by a READ memory access.
==75245==Hint: this fault was caused by a dereference of a high value address (see register values below). Disassemble the provided pc to learn which register was used.
#0 0x7f262db3bab7 in std::default_delete<httplib::detail::any_storage>::operator()(httplib::detail::any_storage*) const /usr/include/c++/15/bits/unique_ptr.h:92
#1 0x7f262da5d1ec in std::unique_ptr<httplib::detail::any_storage, std::default_delete<httplib::detail::any_storage> >::~unique_ptr() /usr/include/c++/15/bits/unique_ptr.h:398
#2 0x7f262dbce4ff in httplib::any::~any() /home/tachi/dev/deb/cpp-httplib/build/httplib.h:854
#3 0x7f262dbce51f in std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, httplib::any>::~pair() /usr/include/c++/15/bits/stl_pair.h:302
#4 0x7f262db9513d in void std::__new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, httplib::any> > >::destroy<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, httplib::any> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, httplib::any>*) /usr/include/c++/15/bits/new_allocator.h:198
#5 0x7f262db9513d in void std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, httplib::any> > > >::destroy<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, httplib::any> >(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, httplib::any> > >&, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, httplib::any>*) /usr/include/c++/15/bits/alloc_traits.h:696
#6 0x7f262db9513d in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, httplib::any>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, httplib::any> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, httplib::any> > >::_M_destroy_node(std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, httplib::any> >*) /usr/include/c++/15/bits/stl_tree.h:1265
#7 0x7f262db67438 in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, httplib::any>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, httplib::any> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, httplib::any> > >::_M_drop_node(std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, httplib::any> >*) /usr/include/c++/15/bits/stl_tree.h:1273
#8 0x7f262db3c146 in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, httplib::any>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, httplib::any> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, httplib::any> > >::_M_erase(std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, httplib::any> >*) /usr/include/c++/15/bits/stl_tree.h:2590
#9 0x7f262da5e545 in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, httplib::any>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, httplib::any> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, httplib::any> > >::~_Rb_tree() /usr/include/c++/15/bits/stl_tree.h:1609
#10 0x7f262da4ef2b in std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, httplib::any, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, httplib::any> > >::~map() /usr/include/c++/15/bits/stl_map.h:337
#11 0x7f262da4f025 in httplib::Response::~Response() /home/tachi/dev/deb/cpp-httplib/build/httplib.h:1340
#12 0x7f262dacb426 in httplib::Server::process_request(httplib::Stream&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, bool, bool&, std::function<void (httplib::Request&)> const&, bool*) /home/tachi/dev/deb/cpp-httplib/build/httplib.cc:8315
#13 0x7f262dacc6cb in operator() /home/tachi/dev/deb/cpp-httplib/build/httplib.cc:8334
#14 0x7f262db2fb91 in operator() /home/tachi/dev/deb/cpp-httplib/build/httplib.cc:1777
#15 0x7f262db5e454 in process_server_socket_core<httplib::detail::process_server_socket<httplib::Server::process_and_close_socket(socket_t)::<lambda(httplib::Stream&, bool, bool&)> >(const std::atomic<int>&, socket_t, size_t, time_t, time_t, time_t, time_t, time_t, httplib::Server::process_and_close_socket(socket_t)::<lambda(httplib::Stream&, bool, bool&)>)::<lambda(bool, bool&)> > /home/tachi/dev/deb/cpp-httplib/build/httplib.cc:1758
#16 0x7f262db2ff8f in process_server_socket<httplib::Server::process_and_close_socket(socket_t)::<lambda(httplib::Stream&, bool, bool&)> > /home/tachi/dev/deb/cpp-httplib/build/httplib.cc:1772
#17 0x7f262daccc6f in httplib::Server::process_and_close_socket(int) /home/tachi/dev/deb/cpp-httplib/build/httplib.cc:8329
#18 0x7f262dac1c35 in operator() /home/tachi/dev/deb/cpp-httplib/build/httplib.cc:7728
#19 0x7f262dbad123 in __invoke_impl<void, httplib::Server::listen_internal()::<lambda()>&> /usr/include/c++/15/bits/invoke.h:63
#20 0x7f262db897f4 in __invoke_r<void, httplib::Server::listen_internal()::<lambda()>&> /usr/include/c++/15/bits/invoke.h:152
#21 0x7f262db5d4f2 in _M_invoke /usr/include/c++/15/bits/std_function.h:292
#22 0x7f262db11cd9 in std::function<void ()>::operator()() const /usr/include/c++/15/bits/std_function.h:593
#23 0x7f262dab2389 in httplib::ThreadPool::worker(bool) /home/tachi/dev/deb/cpp-httplib/build/httplib.cc:6246
#24 0x7f262dab0c6c in operator() /home/tachi/dev/deb/cpp-httplib/build/httplib.cc:6145
#25 0x7f262dc42c58 in __invoke_impl<void, httplib::ThreadPool::ThreadPool(size_t, size_t, size_t)::<lambda()> > /usr/include/c++/15/bits/invoke.h:63
#26 0x7f262dc42b5c in __invoke<httplib::ThreadPool::ThreadPool(size_t, size_t, size_t)::<lambda()> > /usr/include/c++/15/bits/invoke.h:98
#27 0x7f262dc42a61 in _M_invoke<0> /usr/include/c++/15/bits/std_thread.h:303
#28 0x7f262dc428d1 in operator() /usr/include/c++/15/bits/std_thread.h:310
#29 0x7f262dc427f5 in _M_run /usr/include/c++/15/bits/std_thread.h:255
#30 0x7f262ceeb045 (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xeb045) (BuildId: 3c7219cbebcabe7c5729a6a1f3e6718bcce641a2)
#31 0x7f262de605d6 in asan_thread_start ../../../../src/libsanitizer/asan/asan_interceptors.cpp:246
#32 0x7f262cc9f468 (/usr/lib/x86_64-linux-gnu/libc.so.6+0x95468) (BuildId: c9a199fd28ea54b305ea35a8b25500a79bfe684a)
#33 0x7f262cd1dcf7 (/usr/lib/x86_64-linux-gnu/libc.so.6+0x113cf7) (BuildId: c9a199fd28ea54b305ea35a8b25500a79bfe684a)
==75245==Register values:
rax = 0x00005605cdc5425e rbx = 0x00007b962b5eaa70 rcx = 0x54415541e589485d rdx = 0x54415541e589485d
rdi = 0x00007b962b5eaa90 rsi = 0x0a882aa8bcb0a90b rbp = 0x00007b26218db050 rsp = 0x00007b26218db040
r8 = 0x00007b562b5f6da0 r9 = 0x00000000000ccad5 r10 = 0x00007f262dfce298 r11 = 0x00007f262e4875b4
r12 = 0x00000f64c3bba000 r13 = 0x0000000000000000 r14 = 0x0000000000000000 r15 = 0x0000000000000000
AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV /home/tachi/dev/deb/cpp-httplib/build/httplib.h:854 in httplib::any::~any()
Thread T2 created by T1 here:
#0 0x7f262df1b16e in pthread_create ../../../../src/libsanitizer/asan/asan_interceptors.cpp:257
#1 0x7f262ceeb118 in std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xeb118) (BuildId: 3c7219cbebcabe7c5729a6a1f3e6718bcce641a2)
#2 0x7f262da53b0e in httplib::ThreadPool::ThreadPool(unsigned long, unsigned long, unsigned long) /home/tachi/dev/deb/cpp-httplib/build/httplib.cc:6145
#3 0x7f262dab5e13 in operator() /home/tachi/dev/deb/cpp-httplib/build/httplib.cc:6766
#4 0x7f262dba8153 in __invoke_impl<httplib::ThreadPool*, httplib::Server::Server()::<lambda()>&> /usr/include/c++/15/bits/invoke.h:63
#5 0x7f262db810c1 in __invoke_r<httplib::TaskQueue*, httplib::Server::Server()::<lambda()>&> /usr/include/c++/15/bits/invoke.h:140
#6 0x7f262db527c9 in _M_invoke /usr/include/c++/15/bits/std_function.h:292
#7 0x7f262db2dd09 in std::function<httplib::TaskQueue* ()>::operator()() const /usr/include/c++/15/bits/std_function.h:593
#8 0x7f262dac1e52 in httplib::Server::listen_internal() /home/tachi/dev/deb/cpp-httplib/build/httplib.cc:7675
#9 0x7f262dab88c3 in httplib::Server::listen(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, int) /home/tachi/dev/deb/cpp-httplib/build/httplib.cc:7069
#10 0x5605cd8a5747 in operator() ../test/test.cc:3182
#11 0x5605cdde6559 in __invoke_impl<void, RequestHandlerTest_ResponseUserDataInPreRouting_Test::TestBody()::<lambda()> > /usr/include/c++/15/bits/invoke.h:63
#12 0x5605cdde3528 in __invoke<RequestHandlerTest_ResponseUserDataInPreRouting_Test::TestBody()::<lambda()> > /usr/include/c++/15/bits/invoke.h:98
#13 0x5605cdde03f7 in _M_invoke<0> /usr/include/c++/15/bits/std_thread.h:303
#14 0x5605cddde30f in operator() /usr/include/c++/15/bits/std_thread.h:310
#15 0x5605cddbdecd in _M_run /usr/include/c++/15/bits/std_thread.h:255
#16 0x7f262ceeb045 (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xeb045) (BuildId: 3c7219cbebcabe7c5729a6a1f3e6718bcce641a2)
Thread T1 created by T0 here:
#0 0x7f262df1b16e in pthread_create ../../../../src/libsanitizer/asan/asan_interceptors.cpp:257
#1 0x7f262ceeb118 in std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xeb118) (BuildId: 3c7219cbebcabe7c5729a6a1f3e6718bcce641a2)
#2 0x5605cd8a60a7 in RequestHandlerTest_ResponseUserDataInPreRouting_Test::TestBody() ../test/test.cc:3182
#3 0x5605cde22676 in void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) (/home/tachi/dev/deb/cpp-httplib/build/test/main+0x862676) (BuildId: ae2620513238584eb544e919a31b2e61185de63b)
==75245==ABORTING
Edit: running with the undefined behaviour sanitizer, other info pops up:
Running main() from ./googletest/src/gtest_main.cc
Note: Google Test filter = RequestHandlerTest.ResponseUserDataInPreRouting
[==========] Running 1 test from 1 test suite.
[----------] Global test environment set-up.
[----------] 1 test from RequestHandlerTest
[ RUN ] RequestHandlerTest.ResponseUserDataInPreRouting
/usr/include/c++/15/bits/unique_ptr.h:92:2: runtime error: member call on misaligned address 0x55653178054c for type 'struct any_storage', which requires 8 byte alignment
0x55653178054c: note: pointer points here
f8 c9 c3 90 55 48 89 e5 41 55 41 54 53 48 83 ec 38 89 7d cc 48 89 75 c0 48 89 55 b8 48 8b 45 c0
^
#0 0x7f9086a1375c in std::default_delete<httplib::detail::any_storage>::operator()(httplib::detail::any_storage*) const /usr/include/c++/15/bits/unique_ptr.h:92
#1 0x7f90868dc5a8 in std::unique_ptr<httplib::detail::any_storage, std::default_delete<httplib::detail::any_storage> >::~unique_ptr() /usr/include/c++/15/bits/unique_ptr.h:398
#2 0x7f9086aff72f in httplib::any::~any() /home/tachi/dev/deb/cpp-httplib/build/httplib.h:854
#3 0x7f9086aff7c5 in std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, httplib::any>::~pair() /usr/include/c++/15/bits/stl_pair.h:302
#4 0x7f9086a9cbac in void std::__new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, httplib::any> > >::destroy<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, httplib::any> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, httplib::any>*) /usr/include/c++/15/bits/new_allocator.h:198
#5 0x7f9086a9cbac in void std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, httplib::any> > > >::destroy<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, httplib::any> >(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, httplib::any> > >&, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, httplib::any>*) /usr/include/c++/15/bits/alloc_traits.h:696
#6 0x7f9086a9cbac in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, httplib::any>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, httplib::any> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, httplib::any> > >::_M_destroy_node(std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, httplib::any> >*) /usr/include/c++/15/bits/stl_tree.h:1265
#7 0x7f9086a57592 in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, httplib::any>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, httplib::any> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, httplib::any> > >::_M_drop_node(std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, httplib::any> >*) /usr/include/c++/15/bits/stl_tree.h:1273
#8 0x7f9086a145eb in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, httplib::any>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, httplib::any> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, httplib::any> > >::_M_erase(std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, httplib::any> >*) /usr/include/c++/15/bits/stl_tree.h:2590
#9 0x7f90868de7c6 in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, httplib::any>, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, httplib::any> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, httplib::any> > >::~_Rb_tree() /usr/include/c++/15/bits/stl_tree.h:1609
#10 0x7f90868ad211 in std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, httplib::any, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, httplib::any> > >::~map() /usr/include/c++/15/bits/stl_map.h:337
#11 0x7f90868ad6ba in httplib::Response::~Response() /home/tachi/dev/deb/cpp-httplib/build/httplib.h:1340
#12 0x7f9086974f81 in httplib::Server::process_request(httplib::Stream&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, bool, bool&, std::function<void (httplib::Request&)> const&, bool*) /home/tachi/dev/deb/cpp-httplib/build/httplib.cc:8315
#13 0x7f9086975c8f in operator() /home/tachi/dev/deb/cpp-httplib/build/httplib.cc:8334
#14 0x7f90869ff6f6 in operator() /home/tachi/dev/deb/cpp-httplib/build/httplib.cc:1777
#15 0x7f9086a472ce in process_server_socket_core<httplib::detail::process_server_socket<httplib::Server::process_and_close_socket(socket_t)::<lambda(httplib::Stream&, bool, bool&)> >(const std::atomic<int>&, socket_t, size_t, time_t, time_t, time_t, time_t, time_t, httplib::Server::process_and_close_socket(socket_t)::<lambda(httplib::Stream&, bool, bool&)>)::<lambda(bool, bool&)> > /home/tachi/dev/deb/cpp-httplib/build/httplib.cc:1758
#16 0x7f90869ff8f2 in process_server_socket<httplib::Server::process_and_close_socket(socket_t)::<lambda(httplib::Stream&, bool, bool&)> > /home/tachi/dev/deb/cpp-httplib/build/httplib.cc:1772
#17 0x7f9086976563 in httplib::Server::process_and_close_socket(int) /home/tachi/dev/deb/cpp-httplib/build/httplib.cc:8329
#18 0x7f9086966990 in operator() /home/tachi/dev/deb/cpp-httplib/build/httplib.cc:7728
#19 0x7f9086ac4a23 in __invoke_impl<void, httplib::Server::listen_internal()::<lambda()>&> /usr/include/c++/15/bits/invoke.h:63
#20 0x7f9086a886a9 in __invoke_r<void, httplib::Server::listen_internal()::<lambda()>&> /usr/include/c++/15/bits/invoke.h:152
#21 0x7f9086a45720 in _M_invoke /usr/include/c++/15/bits/std_function.h:292
#22 0x7f90869d5686 in std::function<void ()>::operator()() const /usr/include/c++/15/bits/std_function.h:593
#23 0x7f908694c512 in httplib::ThreadPool::worker(bool) /home/tachi/dev/deb/cpp-httplib/build/httplib.cc:6246
#24 0x7f908694964d in operator() /home/tachi/dev/deb/cpp-httplib/build/httplib.cc:6145
#25 0x7f9086bbd89b in __invoke_impl<void, httplib::ThreadPool::ThreadPool(size_t, size_t, size_t)::<lambda()> > /usr/include/c++/15/bits/invoke.h:63
#26 0x7f9086bbd51b in __invoke<httplib::ThreadPool::ThreadPool(size_t, size_t, size_t)::<lambda()> > /usr/include/c++/15/bits/invoke.h:98
#27 0x7f9086bbd008 in _M_invoke<0> /usr/include/c++/15/bits/std_thread.h:303
#28 0x7f9086bbc8d3 in operator() /usr/include/c++/15/bits/std_thread.h:310
#29 0x7f9086bbc695 in _M_run /usr/include/c++/15/bits/std_thread.h:255
#30 0x7f9085aeb045 (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0xeb045) (BuildId: 3c7219cbebcabe7c5729a6a1f3e6718bcce641a2)
#31 0x7f908509f468 (/usr/lib/x86_64-linux-gnu/libc.so.6+0x95468) (BuildId: c9a199fd28ea54b305ea35a8b25500a79bfe684a)
#32 0x7f908511dcf7 (/usr/lib/x86_64-linux-gnu/libc.so.6+0x113cf7) (BuildId: c9a199fd28ea54b305ea35a8b25500a79bfe684a)
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /usr/include/c++/15/bits/unique_ptr.h:92:2
Hi, it seems that the
RequestHandlerTest.ResponseUserDataInPreRoutinghas been failing with a segmentation fault (SIGSEGV) since its introduction; a bisect pointed me to commit 43cf182, which is the one introducing the test itself.Compiling the code with the address sanitizer gives some more hints:
Edit: running with the undefined behaviour sanitizer, other info pops up: