cmu-db / noisepage

Self-Driving Database Management System from Carnegie Mellon University
https://noise.page
MIT License
1.74k stars 502 forks source link

Memory leak in master on teardown after executing "ant test-unit" or "select.test". #1481

Closed lmwnshn closed 3 years ago

lmwnshn commented 3 years ago

Bug Report

Summary

Memory leak on teardown after executing "ant test-unit" or "select.test".

Environment

Looks like both GCC and Clang on CI. Debug builds since you want LSAN. Can reproduce locally.

Background / Steps to Reproduce

1. A CI mystery

The testing framework relies on the following promise here1, here2, here3:

Popen.poll()
Check if child process has terminated. Set and return returncode attribute. Otherwise, returns None.

Which is why I found it very mysterious that I was seeing this on CI for the junit and select.test (check any build):

+++ ==================================================================================================== +++
+++ TEST JUNIT                                                                                           +++
...
02-20-2021 02:55:38,248 [test_server.py:179] INFO : Quiet and all tests passed (return code 0), skipping printing.
02-20-2021 02:56:38,280 [db_server.py:146] INFO : DBMS stopped successfully, code: -9
+++ ==================================================================================================== +++
+++ TEST TRACEFILE: /jenkins/workspace/terrier_PR-1472@2/script/testing/junit/traces/select.test         +++
...
02-20-2021 02:57:38,039 [test_server.py:179] INFO : Quiet and all tests passed (return code 0), skipping printing.
02-20-2021 02:57:39,106 [db_server.py:146] INFO : DBMS stopped successfully, code: 1

2. A local test.

After booting up the server, ant test-unit, then ctrl-c the server:

  1. Boot up the server
    CLionProjects/noisepage [master] » /home/kapi/CLionProjects/noisepage/cmake-build-debug/bin/noisepage -wal_file_path=wal.log                                              
    [2021-02-20 17:32:04.964] [network_logger] [info] Listening on networked socket with port 15721 [PID=40168]
    [2021-02-20 17:32:04.964] [network_logger] [info] Listening on Unix domain socket with port 15721 [PID=40168]
  2. ant test-unit works, no problem
    
    testing/junit [master] » ant test-unit                                                                             
    Buildfile: /home/kapi/CLionProjects/noisepage/script/testing/junit/build.xml

compile: [javac] Compiling 1 source file to /home/kapi/CLionProjects/noisepage/script/testing/junit/out [javac] Note: /home/kapi/CLionProjects/noisepage/script/testing/junit/src/moglib/CommandLine.java uses unchecked or unsafe operations. [javac] Note: Recompile with -Xlint:unchecked for details.

test-unit: [java] ╷ [java] ├─ JUnit Jupiter ✔ [java] └─ JUnit Vintage ✔ [java] ├─ TrafficCopTest ✔ [java] │ ├─ test_DisconnectAbort ✔ [java] │ ├─ test_DDLStatements ✔ [java] │ ├─ test_BadBinding ✔ [java] │ ├─ test_BadParse ✔ [java] │ └─ test_EmptyStatement ✔ [java] └─ WireTest ✔ [java] └─ testDouble ✔ [java] [java] Test run finished after 1176 ms [java] [ 4 containers found ] [java] [ 0 containers skipped ] [java] [ 4 containers started ] [java] [ 0 containers aborted ] [java] [ 4 containers successful ] [java] [ 0 containers failed ] [java] [ 6 tests found ] [java] [ 0 tests skipped ] [java] [ 6 tests started ] [java] [ 0 tests aborted ] [java] [ 6 tests successful ] [java] [ 0 tests failed ] [java]

BUILD SUCCESSFUL Total time: 3 seconds

3. `ctrl-c` the server

^C[2021-02-20 17:32:11.486] [network_logger] [info] Server Closed

================================================================= ==40168==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 16384 byte(s) in 1 object(s) allocated from:

0 0x7fa70869e947 in operator new(unsigned long) (/lib/x86_64-linux-gnu/libasan.so.5+0x10f947)

#1 0x560daa9c34b8 in __gnu_cxx::new_allocator<noisepage::storage::TupleSlot>::allocate(unsigned long, void const*) /usr/include/c++/9/ext/new_allocator.h:114
#2 0x560daa9b93fd in std::allocator_traits<std::allocator<noisepage::storage::TupleSlot> >::allocate(std::allocator<noisepage::storage::TupleSlot>&, unsigned long) /usr/include/c++/9/bits/alloc_traits.h:444
#3 0x560daa9a204f in std::_Vector_base<noisepage::storage::TupleSlot, std::allocator<noisepage::storage::TupleSlot> >::_M_allocate(unsigned long) /usr/include/c++/9/bits/stl_vector.h:343
#4 0x560daae15429 in std::vector<noisepage::storage::TupleSlot, std::allocator<noisepage::storage::TupleSlot> >::_M_default_append(unsigned long) /usr/include/c++/9/bits/vector.tcc:635
#5 0x560daae13a36 in std::vector<noisepage::storage::TupleSlot, std::allocator<noisepage::storage::TupleSlot> >::resize(unsigned long) /usr/include/c++/9/bits/stl_vector.h:937
#6 0x560daae10613 in noisepage::execution::sql::VectorProjection::Reset(unsigned long) ../src/execution/sql/vector_projection.cpp:118
#7 0x560daafdab14 in noisepage::execution::sql::TableVectorIterator::Init(unsigned int, unsigned int) ../src/execution/sql/table_vector_iterator.cpp:61
#8 0x560daafda22b in noisepage::execution::sql::TableVectorIterator::Init() ../src/execution/sql/table_vector_iterator.cpp:28
#9 0x560dab158c8f in OpTableVectorIteratorPerformInit ../src/execution/vm/bytecode_handlers.cpp:25
#10 0x560daad30e0c in noisepage::execution::vm::VM::Interpret(unsigned char const*, noisepage::execution::vm::VM::Frame*) ../src/execution/vm/vm.cpp:650
#11 0x560daad4b386 in noisepage::execution::vm::VM::ExecuteCall(unsigned char const*, noisepage::execution::vm::VM::Frame*) ../src/execution/vm/vm.cpp:2620
#12 0x560daad2f426 in noisepage::execution::vm::VM::Interpret(unsigned char const*, noisepage::execution::vm::VM::Frame*) ../src/execution/vm/vm.cpp:447
#13 0x560daad2425c in noisepage::execution::vm::VM::InvokeFunction(noisepage::execution::vm::Module const*, unsigned short, unsigned char const*) ../src/execution/vm/vm.cpp:112
#14 0x560dab2933d8 in noisepage::execution::vm::Module::GetFunction<void, void*>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, noisepage::execution::vm::ExecutionMode, std::function<void (void*)>*)::{lambda(void*)#1}::operator()(void*) const ../src/include/execution/vm/module.h:222
#15 0x560dab29a164 in std::_Function_handler<void (void*), noisepage::execution::vm::Module::GetFunction<void, void*>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, noisepage::execution::vm::ExecutionMode, std::function<void (void*)>*)::{lambda(void*)#1}>::_M_invoke(std::_Any_data const&, void*&&) /usr/include/c++/9/bits/std_function.h:300
#16 0x560dab293900 in std::function<void (void*)>::operator()(void*) const /usr/include/c++/9/bits/std_function.h:688
#17 0x560dab28ee85 in noisepage::execution::compiler::ExecutableQuery::Fragment::Run(std::byte*, noisepage::execution::vm::ExecutionMode) const ../src/execution/compiler/executable_query.cpp:45
#18 0x560dab291798 in noisepage::execution::compiler::ExecutableQuery::Run(noisepage::common::ManagedPointer<noisepage::execution::exec::ExecutionContext>, noisepage::execution::vm::ExecutionMode) ../src/execution/compiler/executable_query.cpp:165
#19 0x560dabdc5578 in noisepage::trafficcop::TrafficCop::RunExecutableQuery(noisepage::common::ManagedPointer<noisepage::network::ConnectionContext>, noisepage::common::ManagedPointer<noisepage::network::PostgresPacketWriter>, noisepage::common::ManagedPointer<noisepage::network::Portal>) const ../src/traffic_cop/traffic_cop.cpp:447
#20 0x560dab2633ed in ExecutePortal ../src/network/postgres/postgres_network_commands.cpp:39
#21 0x560dab265949 in noisepage::network::SimpleQueryCommand::Exec(noisepage::common::ManagedPointer<noisepage::network::ProtocolInterpreter>, noisepage::common::ManagedPointer<noisepage::network::PostgresPacketWriter>, noisepage::common::ManagedPointer<noisepage::trafficcop::TrafficCop>, noisepage::common::ManagedPointer<noisepage::network::ConnectionContext>) ../src/network/postgres/postgres_network_commands.cpp:192
#22 0x560dab2d406a in noisepage::network::PostgresProtocolInterpreter::Process(noisepage::common::ManagedPointer<noisepage::network::ReadBuffer>, noisepage::common::ManagedPointer<noisepage::network::WriteQueue>, noisepage::common::ManagedPointer<noisepage::trafficcop::TrafficCop>, noisepage::common::ManagedPointer<noisepage::network::ConnectionContext>) ../src/network/postgres/postgres_protocol_interpreter.cpp:45
#23 0x560dab2048f9 in noisepage::network::ConnectionHandle::Process() ../src/network/connection_handle.cpp:182
#24 0x560dab207eb2 in noisepage::network::ConnectionHandleStateMachineTransition::Process(noisepage::common::ManagedPointer<noisepage::network::ConnectionHandle>) ../src/network/connection_handle.cpp:76
#25 0x560dab203c25 in noisepage::network::ConnectionHandle::StateMachine::Accept(noisepage::network::Transition, noisepage::common::ManagedPointer<noisepage::network::ConnectionHandle>) ../src/network/connection_handle.cpp:129
#26 0x560dab204677 in noisepage::network::ConnectionHandle::HandleEvent(int, short) ../src/network/connection_handle.cpp:169
#27 0x560dab204d81 in operator() ../src/network/connection_handle.cpp:217
#28 0x560dab204db7 in _FUN ../src/network/connection_handle.cpp:218
#29 0x7fa70846813e  (/lib/x86_64-linux-gnu/libevent-2.1.so.7+0x2113e)

Direct leak of 256 byte(s) in 1 object(s) allocated from:

0 0x7fa70869e947 in operator new(unsigned long) (/lib/x86_64-linux-gnu/libasan.so.5+0x10f947)

#1 0x560daa9ea3e0 in __gnu_cxx::new_allocator<unsigned long>::allocate(unsigned long, void const*) /usr/include/c++/9/ext/new_allocator.h:114
#2 0x560daa9e28e7 in std::allocator_traits<std::allocator<unsigned long> >::allocate(std::allocator<unsigned long>&, unsigned long) /usr/include/c++/9/bits/alloc_traits.h:444
#3 0x560daaac19ad in std::_Vector_base<unsigned long, std::allocator<unsigned long> >::_M_allocate(unsigned long) /usr/include/c++/9/bits/stl_vector.h:343
#4 0x560daae179a2 in std::_Vector_base<unsigned long, std::allocator<unsigned long> >::_M_create_storage(unsigned long) /usr/include/c++/9/bits/stl_vector.h:358
#5 0x560daae15df8 in std::_Vector_base<unsigned long, std::allocator<unsigned long> >::_Vector_base(unsigned long, std::allocator<unsigned long> const&) /usr/include/c++/9/bits/stl_vector.h:302
#6 0x560daae143fa in std::vector<unsigned long, std::allocator<unsigned long> >::vector(unsigned long, unsigned long const&, std::allocator<unsigned long> const&) /usr/include/c++/9/bits/stl_vector.h:521
#7 0x560daae1261a in noisepage::execution::util::BitVector<unsigned long, std::allocator<unsigned long> >::BitVector(unsigned int, std::allocator<unsigned long>) ../src/include/execution/util/bit_vector.h:139
#8 0x560daae120a8 in noisepage::execution::sql::TupleIdList::TupleIdList(unsigned int) ../src/include/execution/sql/tuple_id_list.h:154
#9 0x560daae0f72c in noisepage::execution::sql::VectorProjection::VectorProjection() ../src/execution/sql/vector_projection.cpp:16
#10 0x560daafda091 in noisepage::execution::sql::TableVectorIterator::TableVectorIterator(noisepage::execution::exec::ExecutionContext*, unsigned int, unsigned int*, unsigned int) ../src/execution/sql/table_vector_iterator.cpp:24
#11 0x560dab158c19 in OpTableVectorIteratorInit ../src/execution/vm/bytecode_handlers.cpp:20
#12 0x560daad30d6c in noisepage::execution::vm::VM::Interpret(unsigned char const*, noisepage::execution::vm::VM::Frame*) ../src/execution/vm/vm.cpp:644
#13 0x560daad4b386 in noisepage::execution::vm::VM::ExecuteCall(unsigned char const*, noisepage::execution::vm::VM::Frame*) ../src/execution/vm/vm.cpp:2620
#14 0x560daad2f426 in noisepage::execution::vm::VM::Interpret(unsigned char const*, noisepage::execution::vm::VM::Frame*) ../src/execution/vm/vm.cpp:447
#15 0x560daad2425c in noisepage::execution::vm::VM::InvokeFunction(noisepage::execution::vm::Module const*, unsigned short, unsigned char const*) ../src/execution/vm/vm.cpp:112
#16 0x560dab2933d8 in noisepage::execution::vm::Module::GetFunction<void, void*>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, noisepage::execution::vm::ExecutionMode, std::function<void (void*)>*)::{lambda(void*)#1}::operator()(void*) const ../src/include/execution/vm/module.h:222
#17 0x560dab29a164 in std::_Function_handler<void (void*), noisepage::execution::vm::Module::GetFunction<void, void*>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, noisepage::execution::vm::ExecutionMode, std::function<void (void*)>*)::{lambda(void*)#1}>::_M_invoke(std::_Any_data const&, void*&&) /usr/include/c++/9/bits/std_function.h:300
#18 0x560dab293900 in std::function<void (void*)>::operator()(void*) const /usr/include/c++/9/bits/std_function.h:688
#19 0x560dab28ee85 in noisepage::execution::compiler::ExecutableQuery::Fragment::Run(std::byte*, noisepage::execution::vm::ExecutionMode) const ../src/execution/compiler/executable_query.cpp:45
#20 0x560dab291798 in noisepage::execution::compiler::ExecutableQuery::Run(noisepage::common::ManagedPointer<noisepage::execution::exec::ExecutionContext>, noisepage::execution::vm::ExecutionMode) ../src/execution/compiler/executable_query.cpp:165
#21 0x560dabdc5578 in noisepage::trafficcop::TrafficCop::RunExecutableQuery(noisepage::common::ManagedPointer<noisepage::network::ConnectionContext>, noisepage::common::ManagedPointer<noisepage::network::PostgresPacketWriter>, noisepage::common::ManagedPointer<noisepage::network::Portal>) const ../src/traffic_cop/traffic_cop.cpp:447
#22 0x560dab2633ed in ExecutePortal ../src/network/postgres/postgres_network_commands.cpp:39
#23 0x560dab265949 in noisepage::network::SimpleQueryCommand::Exec(noisepage::common::ManagedPointer<noisepage::network::ProtocolInterpreter>, noisepage::common::ManagedPointer<noisepage::network::PostgresPacketWriter>, noisepage::common::ManagedPointer<noisepage::trafficcop::TrafficCop>, noisepage::common::ManagedPointer<noisepage::network::ConnectionContext>) ../src/network/postgres/postgres_network_commands.cpp:192
#24 0x560dab2d406a in noisepage::network::PostgresProtocolInterpreter::Process(noisepage::common::ManagedPointer<noisepage::network::ReadBuffer>, noisepage::common::ManagedPointer<noisepage::network::WriteQueue>, noisepage::common::ManagedPointer<noisepage::trafficcop::TrafficCop>, noisepage::common::ManagedPointer<noisepage::network::ConnectionContext>) ../src/network/postgres/postgres_protocol_interpreter.cpp:45
#25 0x560dab2048f9 in noisepage::network::ConnectionHandle::Process() ../src/network/connection_handle.cpp:182
#26 0x560dab207eb2 in noisepage::network::ConnectionHandleStateMachineTransition::Process(noisepage::common::ManagedPointer<noisepage::network::ConnectionHandle>) ../src/network/connection_handle.cpp:76
#27 0x560dab203c25 in noisepage::network::ConnectionHandle::StateMachine::Accept(noisepage::network::Transition, noisepage::common::ManagedPointer<noisepage::network::ConnectionHandle>) ../src/network/connection_handle.cpp:129
#28 0x560dab204677 in noisepage::network::ConnectionHandle::HandleEvent(int, short) ../src/network/connection_handle.cpp:169
#29 0x560dab204d81 in operator() ../src/network/connection_handle.cpp:217

Direct leak of 40 byte(s) in 1 object(s) allocated from:

0 0x7fa70869e947 in operator new(unsigned long) (/lib/x86_64-linux-gnu/libasan.so.5+0x10f947)

#1 0x560daafe0c32 in std::_MakeUniq<noisepage::storage::DataTable::SlotIterator>::__single_object std::make_unique<noisepage::storage::DataTable::SlotIterator, noisepage::storage::DataTable::SlotIterator>(noisepage::storage::DataTable::SlotIterator&&) /usr/include/c++/9/bits/unique_ptr.h:857
#2 0x560daafda581 in noisepage::execution::sql::TableVectorIterator::Init(unsigned int, unsigned int) ../src/execution/sql/table_vector_iterator.cpp:40
#3 0x560daafda22b in noisepage::execution::sql::TableVectorIterator::Init() ../src/execution/sql/table_vector_iterator.cpp:28
#4 0x560dab158c8f in OpTableVectorIteratorPerformInit ../src/execution/vm/bytecode_handlers.cpp:25
#5 0x560daad30e0c in noisepage::execution::vm::VM::Interpret(unsigned char const*, noisepage::execution::vm::VM::Frame*) ../src/execution/vm/vm.cpp:650
#6 0x560daad4b386 in noisepage::execution::vm::VM::ExecuteCall(unsigned char const*, noisepage::execution::vm::VM::Frame*) ../src/execution/vm/vm.cpp:2620
#7 0x560daad2f426 in noisepage::execution::vm::VM::Interpret(unsigned char const*, noisepage::execution::vm::VM::Frame*) ../src/execution/vm/vm.cpp:447
#8 0x560daad2425c in noisepage::execution::vm::VM::InvokeFunction(noisepage::execution::vm::Module const*, unsigned short, unsigned char const*) ../src/execution/vm/vm.cpp:112
#9 0x560dab2933d8 in noisepage::execution::vm::Module::GetFunction<void, void*>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, noisepage::execution::vm::ExecutionMode, std::function<void (void*)>*)::{lambda(void*)#1}::operator()(void*) const ../src/include/execution/vm/module.h:222
#10 0x560dab29a164 in std::_Function_handler<void (void*), noisepage::execution::vm::Module::GetFunction<void, void*>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, noisepage::execution::vm::ExecutionMode, std::function<void (void*)>*)::{lambda(void*)#1}>::_M_invoke(std::_Any_data const&, void*&&) /usr/include/c++/9/bits/std_function.h:300
#11 0x560dab293900 in std::function<void (void*)>::operator()(void*) const /usr/include/c++/9/bits/std_function.h:688
#12 0x560dab28ee85 in noisepage::execution::compiler::ExecutableQuery::Fragment::Run(std::byte*, noisepage::execution::vm::ExecutionMode) const ../src/execution/compiler/executable_query.cpp:45
#13 0x560dab291798 in noisepage::execution::compiler::ExecutableQuery::Run(noisepage::common::ManagedPointer<noisepage::execution::exec::ExecutionContext>, noisepage::execution::vm::ExecutionMode) ../src/execution/compiler/executable_query.cpp:165
#14 0x560dabdc5578 in noisepage::trafficcop::TrafficCop::RunExecutableQuery(noisepage::common::ManagedPointer<noisepage::network::ConnectionContext>, noisepage::common::ManagedPointer<noisepage::network::PostgresPacketWriter>, noisepage::common::ManagedPointer<noisepage::network::Portal>) const ../src/traffic_cop/traffic_cop.cpp:447
#15 0x560dab2633ed in ExecutePortal ../src/network/postgres/postgres_network_commands.cpp:39
#16 0x560dab265949 in noisepage::network::SimpleQueryCommand::Exec(noisepage::common::ManagedPointer<noisepage::network::ProtocolInterpreter>, noisepage::common::ManagedPointer<noisepage::network::PostgresPacketWriter>, noisepage::common::ManagedPointer<noisepage::trafficcop::TrafficCop>, noisepage::common::ManagedPointer<noisepage::network::ConnectionContext>) ../src/network/postgres/postgres_network_commands.cpp:192
#17 0x560dab2d406a in noisepage::network::PostgresProtocolInterpreter::Process(noisepage::common::ManagedPointer<noisepage::network::ReadBuffer>, noisepage::common::ManagedPointer<noisepage::network::WriteQueue>, noisepage::common::ManagedPointer<noisepage::trafficcop::TrafficCop>, noisepage::common::ManagedPointer<noisepage::network::ConnectionContext>) ../src/network/postgres/postgres_protocol_interpreter.cpp:45
#18 0x560dab2048f9 in noisepage::network::ConnectionHandle::Process() ../src/network/connection_handle.cpp:182
#19 0x560dab207eb2 in noisepage::network::ConnectionHandleStateMachineTransition::Process(noisepage::common::ManagedPointer<noisepage::network::ConnectionHandle>) ../src/network/connection_handle.cpp:76
#20 0x560dab203c25 in noisepage::network::ConnectionHandle::StateMachine::Accept(noisepage::network::Transition, noisepage::common::ManagedPointer<noisepage::network::ConnectionHandle>) ../src/network/connection_handle.cpp:129
#21 0x560dab204677 in noisepage::network::ConnectionHandle::HandleEvent(int, short) ../src/network/connection_handle.cpp:169
#22 0x560dab204d81 in operator() ../src/network/connection_handle.cpp:217
#23 0x560dab204db7 in _FUN ../src/network/connection_handle.cpp:218
#24 0x7fa70846813e  (/lib/x86_64-linux-gnu/libevent-2.1.so.7+0x2113e)

Direct leak of 8 byte(s) in 1 object(s) allocated from:

0 0x7fa70869e947 in operator new(unsigned long) (/lib/x86_64-linux-gnu/libasan.so.5+0x10f947)

#1 0x560daae188e8 in __gnu_cxx::new_allocator<std::unique_ptr<noisepage::execution::sql::Vector, std::default_delete<noisepage::execution::sql::Vector> > >::allocate(unsigned long, void const*) /usr/include/c++/9/ext/new_allocator.h:114
#2 0x560daae17f86 in std::allocator_traits<std::allocator<std::unique_ptr<noisepage::execution::sql::Vector, std::default_delete<noisepage::execution::sql::Vector> > > >::allocate(std::allocator<std::unique_ptr<noisepage::execution::sql::Vector, std::default_delete<noisepage::execution::sql::Vector> > >&, unsigned long) /usr/include/c++/9/bits/alloc_traits.h:444
#3 0x560daae16ed5 in std::_Vector_base<std::unique_ptr<noisepage::execution::sql::Vector, std::default_delete<noisepage::execution::sql::Vector> >, std::allocator<std::unique_ptr<noisepage::execution::sql::Vector, std::default_delete<noisepage::execution::sql::Vector> > > >::_M_allocate(unsigned long) /usr/include/c++/9/bits/stl_vector.h:343
#4 0x560daae14931 in std::vector<std::unique_ptr<noisepage::execution::sql::Vector, std::default_delete<noisepage::execution::sql::Vector> >, std::allocator<std::unique_ptr<noisepage::execution::sql::Vector, std::default_delete<noisepage::execution::sql::Vector> > > >::_M_default_append(unsigned long) /usr/include/c++/9/bits/vector.tcc:635
#5 0x560daae12e7a in std::vector<std::unique_ptr<noisepage::execution::sql::Vector, std::default_delete<noisepage::execution::sql::Vector> >, std::allocator<std::unique_ptr<noisepage::execution::sql::Vector, std::default_delete<noisepage::execution::sql::Vector> > > >::resize(unsigned long) /usr/include/c++/9/bits/stl_vector.h:937
#6 0x560daae0f90d in noisepage::execution::sql::VectorProjection::InitializeEmpty(std::vector<noisepage::execution::sql::TypeId, std::allocator<noisepage::execution::sql::TypeId> > const&) ../src/execution/sql/vector_projection.cpp:26
#7 0x560daae0fb55 in noisepage::execution::sql::VectorProjection::Initialize(std::vector<noisepage::execution::sql::TypeId, std::allocator<noisepage::execution::sql::TypeId> > const&) ../src/execution/sql/vector_projection.cpp:37
#8 0x560daafdaafc in noisepage::execution::sql::TableVectorIterator::Init(unsigned int, unsigned int) ../src/execution/sql/table_vector_iterator.cpp:60
#9 0x560daafda22b in noisepage::execution::sql::TableVectorIterator::Init() ../src/execution/sql/table_vector_iterator.cpp:28
#10 0x560dab158c8f in OpTableVectorIteratorPerformInit ../src/execution/vm/bytecode_handlers.cpp:25
#11 0x560daad30e0c in noisepage::execution::vm::VM::Interpret(unsigned char const*, noisepage::execution::vm::VM::Frame*) ../src/execution/vm/vm.cpp:650
#12 0x560daad4b386 in noisepage::execution::vm::VM::ExecuteCall(unsigned char const*, noisepage::execution::vm::VM::Frame*) ../src/execution/vm/vm.cpp:2620
#13 0x560daad2f426 in noisepage::execution::vm::VM::Interpret(unsigned char const*, noisepage::execution::vm::VM::Frame*) ../src/execution/vm/vm.cpp:447
#14 0x560daad2425c in noisepage::execution::vm::VM::InvokeFunction(noisepage::execution::vm::Module const*, unsigned short, unsigned char const*) ../src/execution/vm/vm.cpp:112
#15 0x560dab2933d8 in noisepage::execution::vm::Module::GetFunction<void, void*>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, noisepage::execution::vm::ExecutionMode, std::function<void (void*)>*)::{lambda(void*)#1}::operator()(void*) const ../src/include/execution/vm/module.h:222
#16 0x560dab29a164 in std::_Function_handler<void (void*), noisepage::execution::vm::Module::GetFunction<void, void*>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, noisepage::execution::vm::ExecutionMode, std::function<void (void*)>*)::{lambda(void*)#1}>::_M_invoke(std::_Any_data const&, void*&&) /usr/include/c++/9/bits/std_function.h:300
#17 0x560dab293900 in std::function<void (void*)>::operator()(void*) const /usr/include/c++/9/bits/std_function.h:688
#18 0x560dab28ee85 in noisepage::execution::compiler::ExecutableQuery::Fragment::Run(std::byte*, noisepage::execution::vm::ExecutionMode) const ../src/execution/compiler/executable_query.cpp:45
#19 0x560dab291798 in noisepage::execution::compiler::ExecutableQuery::Run(noisepage::common::ManagedPointer<noisepage::execution::exec::ExecutionContext>, noisepage::execution::vm::ExecutionMode) ../src/execution/compiler/executable_query.cpp:165
#20 0x560dabdc5578 in noisepage::trafficcop::TrafficCop::RunExecutableQuery(noisepage::common::ManagedPointer<noisepage::network::ConnectionContext>, noisepage::common::ManagedPointer<noisepage::network::PostgresPacketWriter>, noisepage::common::ManagedPointer<noisepage::network::Portal>) const ../src/traffic_cop/traffic_cop.cpp:447
#21 0x560dab2633ed in ExecutePortal ../src/network/postgres/postgres_network_commands.cpp:39
#22 0x560dab265949 in noisepage::network::SimpleQueryCommand::Exec(noisepage::common::ManagedPointer<noisepage::network::ProtocolInterpreter>, noisepage::common::ManagedPointer<noisepage::network::PostgresPacketWriter>, noisepage::common::ManagedPointer<noisepage::trafficcop::TrafficCop>, noisepage::common::ManagedPointer<noisepage::network::ConnectionContext>) ../src/network/postgres/postgres_network_commands.cpp:192
#23 0x560dab2d406a in noisepage::network::PostgresProtocolInterpreter::Process(noisepage::common::ManagedPointer<noisepage::network::ReadBuffer>, noisepage::common::ManagedPointer<noisepage::network::WriteQueue>, noisepage::common::ManagedPointer<noisepage::trafficcop::TrafficCop>, noisepage::common::ManagedPointer<noisepage::network::ConnectionContext>) ../src/network/postgres/postgres_protocol_interpreter.cpp:45
#24 0x560dab2048f9 in noisepage::network::ConnectionHandle::Process() ../src/network/connection_handle.cpp:182
#25 0x560dab207eb2 in noisepage::network::ConnectionHandleStateMachineTransition::Process(noisepage::common::ManagedPointer<noisepage::network::ConnectionHandle>) ../src/network/connection_handle.cpp:76
#26 0x560dab203c25 in noisepage::network::ConnectionHandle::StateMachine::Accept(noisepage::network::Transition, noisepage::common::ManagedPointer<noisepage::network::ConnectionHandle>) ../src/network/connection_handle.cpp:129
#27 0x560dab204677 in noisepage::network::ConnectionHandle::HandleEvent(int, short) ../src/network/connection_handle.cpp:169
#28 0x560dab204d81 in operator() ../src/network/connection_handle.cpp:217
#29 0x560dab204db7 in _FUN ../src/network/connection_handle.cpp:218

Direct leak of 4 byte(s) in 1 object(s) allocated from:

0 0x7fa70869e947 in operator new(unsigned long) (/lib/x86_64-linux-gnu/libasan.so.5+0x10f947)

#1 0x560daa8ca34e in __gnu_cxx::new_allocator<unsigned int>::allocate(unsigned long, void const*) /usr/include/c++/9/ext/new_allocator.h:114
#2 0x560daa8ca302 in std::allocator_traits<std::allocator<unsigned int> >::allocate(std::allocator<unsigned int>&, unsigned long) /usr/include/c++/9/bits/alloc_traits.h:444
#3 0x560daa8eed13 in std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_M_allocate(unsigned long) /usr/include/c++/9/bits/stl_vector.h:343
#4 0x560daa8eb28a in std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_M_create_storage(unsigned long) /usr/include/c++/9/bits/stl_vector.h:358
#5 0x560daa8e767e in std::_Vector_base<unsigned int, std::allocator<unsigned int> >::_Vector_base(unsigned long, std::allocator<unsigned int> const&) /usr/include/c++/9/bits/stl_vector.h:302
#6 0x560daae13e5c in std::vector<unsigned int, std::allocator<unsigned int> >::vector(unsigned long, std::allocator<unsigned int> const&) /usr/include/c++/9/bits/stl_vector.h:508
#7 0x560dabd4112e in noisepage::storage::ProjectedRowInitializer::ProjectedRowInitializer(std::vector<unsigned short, std::allocator<unsigned short> > const&, std::vector<noisepage::common::StrongTypeAlias<noisepage::storage::tags::col_id_t_typedef_tag, unsigned short>, std::allocator<noisepage::common::StrongTypeAlias<noisepage::storage::tags::col_id_t_typedef_tag, unsigned short> > >) ../src/storage/projected_row.cpp:23
#8 0x560dabd42131 in noisepage::storage::ProjectedRowInitializer::Create(noisepage::storage::BlockLayout const&, std::vector<noisepage::common::StrongTypeAlias<noisepage::storage::tags::col_id_t_typedef_tag, unsigned short>, std::allocator<noisepage::common::StrongTypeAlias<noisepage::storage::tags::col_id_t_typedef_tag, unsigned short> > >) ../src/storage/projected_row.cpp:78
#9 0x560daa8de880 in noisepage::storage::SqlTable::InitializerForProjectedRow(std::vector<noisepage::common::StrongTypeAlias<noisepage::catalog::tags::col_oid_t_typedef_tag, unsigned int>, std::allocator<noisepage::common::StrongTypeAlias<noisepage::catalog::tags::col_oid_t_typedef_tag, unsigned int> > > const&) const ../src/include/storage/sql_table.h:224
#10 0x560dab185d47 in noisepage::execution::sql::StorageInterface::StorageInterface(noisepage::execution::exec::ExecutionContext*, noisepage::common::StrongTypeAlias<noisepage::catalog::tags::table_oid_t_typedef_tag, unsigned int>, unsigned int*, unsigned int, bool) ../src/execution/sql/storage_interface.cpp:21
#11 0x560dab1595cc in OpStorageInterfaceInit ../src/execution/vm/bytecode_handlers.cpp:207
#12 0x560daad44d7c in noisepage::execution::vm::VM::Interpret(unsigned char const*, noisepage::execution::vm::VM::Frame*) ../src/execution/vm/vm.cpp:2036
#13 0x560daad4b386 in noisepage::execution::vm::VM::ExecuteCall(unsigned char const*, noisepage::execution::vm::VM::Frame*) ../src/execution/vm/vm.cpp:2620
#14 0x560daad2f426 in noisepage::execution::vm::VM::Interpret(unsigned char const*, noisepage::execution::vm::VM::Frame*) ../src/execution/vm/vm.cpp:447
#15 0x560daad2425c in noisepage::execution::vm::VM::InvokeFunction(noisepage::execution::vm::Module const*, unsigned short, unsigned char const*) ../src/execution/vm/vm.cpp:112
#16 0x560dab2933d8 in noisepage::execution::vm::Module::GetFunction<void, void*>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, noisepage::execution::vm::ExecutionMode, std::function<void (void*)>*)::{lambda(void*)#1}::operator()(void*) const ../src/include/execution/vm/module.h:222
#17 0x560dab29a164 in std::_Function_handler<void (void*), noisepage::execution::vm::Module::GetFunction<void, void*>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, noisepage::execution::vm::ExecutionMode, std::function<void (void*)>*)::{lambda(void*)#1}>::_M_invoke(std::_Any_data const&, void*&&) /usr/include/c++/9/bits/std_function.h:300
#18 0x560dab293900 in std::function<void (void*)>::operator()(void*) const /usr/include/c++/9/bits/std_function.h:688
#19 0x560dab28ee85 in noisepage::execution::compiler::ExecutableQuery::Fragment::Run(std::byte*, noisepage::execution::vm::ExecutionMode) const ../src/execution/compiler/executable_query.cpp:45
#20 0x560dab291798 in noisepage::execution::compiler::ExecutableQuery::Run(noisepage::common::ManagedPointer<noisepage::execution::exec::ExecutionContext>, noisepage::execution::vm::ExecutionMode) ../src/execution/compiler/executable_query.cpp:165
#21 0x560dabdc5578 in noisepage::trafficcop::TrafficCop::RunExecutableQuery(noisepage::common::ManagedPointer<noisepage::network::ConnectionContext>, noisepage::common::ManagedPointer<noisepage::network::PostgresPacketWriter>, noisepage::common::ManagedPointer<noisepage::network::Portal>) const ../src/traffic_cop/traffic_cop.cpp:447
#22 0x560dab2633ed in ExecutePortal ../src/network/postgres/postgres_network_commands.cpp:39
#23 0x560dab265949 in noisepage::network::SimpleQueryCommand::Exec(noisepage::common::ManagedPointer<noisepage::network::ProtocolInterpreter>, noisepage::common::ManagedPointer<noisepage::network::PostgresPacketWriter>, noisepage::common::ManagedPointer<noisepage::trafficcop::TrafficCop>, noisepage::common::ManagedPointer<noisepage::network::ConnectionContext>) ../src/network/postgres/postgres_network_commands.cpp:192
#24 0x560dab2d406a in noisepage::network::PostgresProtocolInterpreter::Process(noisepage::common::ManagedPointer<noisepage::network::ReadBuffer>, noisepage::common::ManagedPointer<noisepage::network::WriteQueue>, noisepage::common::ManagedPointer<noisepage::trafficcop::TrafficCop>, noisepage::common::ManagedPointer<noisepage::network::ConnectionContext>) ../src/network/postgres/postgres_protocol_interpreter.cpp:45
#25 0x560dab2048f9 in noisepage::network::ConnectionHandle::Process() ../src/network/connection_handle.cpp:182
#26 0x560dab207eb2 in noisepage::network::ConnectionHandleStateMachineTransition::Process(noisepage::common::ManagedPointer<noisepage::network::ConnectionHandle>) ../src/network/connection_handle.cpp:76
#27 0x560dab203c25 in noisepage::network::ConnectionHandle::StateMachine::Accept(noisepage::network::Transition, noisepage::common::ManagedPointer<noisepage::network::ConnectionHandle>) ../src/network/connection_handle.cpp:129
#28 0x560dab204677 in noisepage::network::ConnectionHandle::HandleEvent(int, short) ../src/network/connection_handle.cpp:169
#29 0x560dab204d81 in operator() ../src/network/connection_handle.cpp:217

Direct leak of 4 byte(s) in 1 object(s) allocated from:

0 0x7fa70869e947 in operator new(unsigned long) (/lib/x86_64-linux-gnu/libasan.so.5+0x10f947)

#1 0x560daa8f0e24 in __gnu_cxx::new_allocator<noisepage::common::StrongTypeAlias<noisepage::catalog::tags::col_oid_t_typedef_tag, unsigned int> >::allocate(unsigned long, void const*) /usr/include/c++/9/ext/new_allocator.h:114
#2 0x560daa8ee576 in std::allocator_traits<std::allocator<noisepage::common::StrongTypeAlias<noisepage::catalog::tags::col_oid_t_typedef_tag, unsigned int> > >::allocate(std::allocator<noisepage::common::StrongTypeAlias<noisepage::catalog::tags::col_oid_t_typedef_tag, unsigned int> >&, unsigned long) /usr/include/c++/9/bits/alloc_traits.h:444
#3 0x560daa8e9e5f in std::_Vector_base<noisepage::common::StrongTypeAlias<noisepage::catalog::tags::col_oid_t_typedef_tag, unsigned int>, std::allocator<noisepage::common::StrongTypeAlias<noisepage::catalog::tags::col_oid_t_typedef_tag, unsigned int> > >::_M_allocate(unsigned long) /usr/include/c++/9/bits/stl_vector.h:343
#4 0x560daafe1e22 in void std::vector<noisepage::common::StrongTypeAlias<noisepage::catalog::tags::col_oid_t_typedef_tag, unsigned int>, std::allocator<noisepage::common::StrongTypeAlias<noisepage::catalog::tags::col_oid_t_typedef_tag, unsigned int> > >::_M_range_initialize<unsigned int*>(unsigned int*, unsigned int*, std::forward_iterator_tag) /usr/include/c++/9/bits/stl_vector.h:1579
#5 0x560daafe0b17 in std::vector<noisepage::common::StrongTypeAlias<noisepage::catalog::tags::col_oid_t_typedef_tag, unsigned int>, std::allocator<noisepage::common::StrongTypeAlias<noisepage::catalog::tags::col_oid_t_typedef_tag, unsigned int> > >::vector<unsigned int*, void>(unsigned int*, unsigned int*, std::allocator<noisepage::common::StrongTypeAlias<noisepage::catalog::tags::col_oid_t_typedef_tag, unsigned int> > const&) /usr/include/c++/9/bits/stl_vector.h:654
#6 0x560daafda031 in noisepage::execution::sql::TableVectorIterator::TableVectorIterator(noisepage::execution::exec::ExecutionContext*, unsigned int, unsigned int*, unsigned int) ../src/execution/sql/table_vector_iterator.cpp:24
#7 0x560dab158c19 in OpTableVectorIteratorInit ../src/execution/vm/bytecode_handlers.cpp:20
#8 0x560daad30d6c in noisepage::execution::vm::VM::Interpret(unsigned char const*, noisepage::execution::vm::VM::Frame*) ../src/execution/vm/vm.cpp:644
#9 0x560daad4b386 in noisepage::execution::vm::VM::ExecuteCall(unsigned char const*, noisepage::execution::vm::VM::Frame*) ../src/execution/vm/vm.cpp:2620
#10 0x560daad2f426 in noisepage::execution::vm::VM::Interpret(unsigned char const*, noisepage::execution::vm::VM::Frame*) ../src/execution/vm/vm.cpp:447
#11 0x560daad2425c in noisepage::execution::vm::VM::InvokeFunction(noisepage::execution::vm::Module const*, unsigned short, unsigned char const*) ../src/execution/vm/vm.cpp:112
#12 0x560dab2933d8 in noisepage::execution::vm::Module::GetFunction<void, void*>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, noisepage::execution::vm::ExecutionMode, std::function<void (void*)>*)::{lambda(void*)#1}::operator()(void*) const ../src/include/execution/vm/module.h:222
#13 0x560dab29a164 in std::_Function_handler<void (void*), noisepage::execution::vm::Module::GetFunction<void, void*>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, noisepage::execution::vm::ExecutionMode, std::function<void (void*)>*)::{lambda(void*)#1}>::_M_invoke(std::_Any_data const&, void*&&) /usr/include/c++/9/bits/std_function.h:300
#14 0x560dab293900 in std::function<void (void*)>::operator()(void*) const /usr/include/c++/9/bits/std_function.h:688
#15 0x560dab28ee85 in noisepage::execution::compiler::ExecutableQuery::Fragment::Run(std::byte*, noisepage::execution::vm::ExecutionMode) const ../src/execution/compiler/executable_query.cpp:45
#16 0x560dab291798 in noisepage::execution::compiler::ExecutableQuery::Run(noisepage::common::ManagedPointer<noisepage::execution::exec::ExecutionContext>, noisepage::execution::vm::ExecutionMode) ../src/execution/compiler/executable_query.cpp:165
#17 0x560dabdc5578 in noisepage::trafficcop::TrafficCop::RunExecutableQuery(noisepage::common::ManagedPointer<noisepage::network::ConnectionContext>, noisepage::common::ManagedPointer<noisepage::network::PostgresPacketWriter>, noisepage::common::ManagedPointer<noisepage::network::Portal>) const ../src/traffic_cop/traffic_cop.cpp:447
#18 0x560dab2633ed in ExecutePortal ../src/network/postgres/postgres_network_commands.cpp:39
#19 0x560dab265949 in noisepage::network::SimpleQueryCommand::Exec(noisepage::common::ManagedPointer<noisepage::network::ProtocolInterpreter>, noisepage::common::ManagedPointer<noisepage::network::PostgresPacketWriter>, noisepage::common::ManagedPointer<noisepage::trafficcop::TrafficCop>, noisepage::common::ManagedPointer<noisepage::network::ConnectionContext>) ../src/network/postgres/postgres_network_commands.cpp:192
#20 0x560dab2d406a in noisepage::network::PostgresProtocolInterpreter::Process(noisepage::common::ManagedPointer<noisepage::network::ReadBuffer>, noisepage::common::ManagedPointer<noisepage::network::WriteQueue>, noisepage::common::ManagedPointer<noisepage::trafficcop::TrafficCop>, noisepage::common::ManagedPointer<noisepage::network::ConnectionContext>) ../src/network/postgres/postgres_protocol_interpreter.cpp:45
#21 0x560dab2048f9 in noisepage::network::ConnectionHandle::Process() ../src/network/connection_handle.cpp:182
#22 0x560dab207eb2 in noisepage::network::ConnectionHandleStateMachineTransition::Process(noisepage::common::ManagedPointer<noisepage::network::ConnectionHandle>) ../src/network/connection_handle.cpp:76
#23 0x560dab203c25 in noisepage::network::ConnectionHandle::StateMachine::Accept(noisepage::network::Transition, noisepage::common::ManagedPointer<noisepage::network::ConnectionHandle>) ../src/network/connection_handle.cpp:129
#24 0x560dab204677 in noisepage::network::ConnectionHandle::HandleEvent(int, short) ../src/network/connection_handle.cpp:169
#25 0x560dab204d81 in operator() ../src/network/connection_handle.cpp:217
#26 0x560dab204db7 in _FUN ../src/network/connection_handle.cpp:218
#27 0x7fa70846813e  (/lib/x86_64-linux-gnu/libevent-2.1.so.7+0x2113e)

Direct leak of 4 byte(s) in 1 object(s) allocated from:

0 0x7fa70869e947 in operator new(unsigned long) (/lib/x86_64-linux-gnu/libasan.so.5+0x10f947)

#1 0x560daa8f0e24 in __gnu_cxx::new_allocator<noisepage::common::StrongTypeAlias<noisepage::catalog::tags::col_oid_t_typedef_tag, unsigned int> >::allocate(unsigned long, void const*) /usr/include/c++/9/ext/new_allocator.h:114
#2 0x560daa8ee576 in std::allocator_traits<std::allocator<noisepage::common::StrongTypeAlias<noisepage::catalog::tags::col_oid_t_typedef_tag, unsigned int> > >::allocate(std::allocator<noisepage::common::StrongTypeAlias<noisepage::catalog::tags::col_oid_t_typedef_tag, unsigned int> >&, unsigned long) /usr/include/c++/9/bits/alloc_traits.h:444
#3 0x560daa8e9e5f in std::_Vector_base<noisepage::common::StrongTypeAlias<noisepage::catalog::tags::col_oid_t_typedef_tag, unsigned int>, std::allocator<noisepage::common::StrongTypeAlias<noisepage::catalog::tags::col_oid_t_typedef_tag, unsigned int> > >::_M_allocate(unsigned long) /usr/include/c++/9/bits/stl_vector.h:343
#4 0x560daafe1e22 in void std::vector<noisepage::common::StrongTypeAlias<noisepage::catalog::tags::col_oid_t_typedef_tag, unsigned int>, std::allocator<noisepage::common::StrongTypeAlias<noisepage::catalog::tags::col_oid_t_typedef_tag, unsigned int> > >::_M_range_initialize<unsigned int*>(unsigned int*, unsigned int*, std::forward_iterator_tag) /usr/include/c++/9/bits/stl_vector.h:1579
#5 0x560daafe0b17 in std::vector<noisepage::common::StrongTypeAlias<noisepage::catalog::tags::col_oid_t_typedef_tag, unsigned int>, std::allocator<noisepage::common::StrongTypeAlias<noisepage::catalog::tags::col_oid_t_typedef_tag, unsigned int> > >::vector<unsigned int*, void>(unsigned int*, unsigned int*, std::allocator<noisepage::common::StrongTypeAlias<noisepage::catalog::tags::col_oid_t_typedef_tag, unsigned int> > const&) /usr/include/c++/9/bits/stl_vector.h:654
#6 0x560dab185bf1 in noisepage::execution::sql::StorageInterface::StorageInterface(noisepage::execution::exec::ExecutionContext*, noisepage::common::StrongTypeAlias<noisepage::catalog::tags::table_oid_t_typedef_tag, unsigned int>, unsigned int*, unsigned int, bool) ../src/execution/sql/storage_interface.cpp:21
#7 0x560dab1595cc in OpStorageInterfaceInit ../src/execution/vm/bytecode_handlers.cpp:207
#8 0x560daad44d7c in noisepage::execution::vm::VM::Interpret(unsigned char const*, noisepage::execution::vm::VM::Frame*) ../src/execution/vm/vm.cpp:2036
#9 0x560daad4b386 in noisepage::execution::vm::VM::ExecuteCall(unsigned char const*, noisepage::execution::vm::VM::Frame*) ../src/execution/vm/vm.cpp:2620
#10 0x560daad2f426 in noisepage::execution::vm::VM::Interpret(unsigned char const*, noisepage::execution::vm::VM::Frame*) ../src/execution/vm/vm.cpp:447
#11 0x560daad2425c in noisepage::execution::vm::VM::InvokeFunction(noisepage::execution::vm::Module const*, unsigned short, unsigned char const*) ../src/execution/vm/vm.cpp:112
#12 0x560dab2933d8 in noisepage::execution::vm::Module::GetFunction<void, void*>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, noisepage::execution::vm::ExecutionMode, std::function<void (void*)>*)::{lambda(void*)#1}::operator()(void*) const ../src/include/execution/vm/module.h:222
#13 0x560dab29a164 in std::_Function_handler<void (void*), noisepage::execution::vm::Module::GetFunction<void, void*>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, noisepage::execution::vm::ExecutionMode, std::function<void (void*)>*)::{lambda(void*)#1}>::_M_invoke(std::_Any_data const&, void*&&) /usr/include/c++/9/bits/std_function.h:300
#14 0x560dab293900 in std::function<void (void*)>::operator()(void*) const /usr/include/c++/9/bits/std_function.h:688
#15 0x560dab28ee85 in noisepage::execution::compiler::ExecutableQuery::Fragment::Run(std::byte*, noisepage::execution::vm::ExecutionMode) const ../src/execution/compiler/executable_query.cpp:45
#16 0x560dab291798 in noisepage::execution::compiler::ExecutableQuery::Run(noisepage::common::ManagedPointer<noisepage::execution::exec::ExecutionContext>, noisepage::execution::vm::ExecutionMode) ../src/execution/compiler/executable_query.cpp:165
#17 0x560dabdc5578 in noisepage::trafficcop::TrafficCop::RunExecutableQuery(noisepage::common::ManagedPointer<noisepage::network::ConnectionContext>, noisepage::common::ManagedPointer<noisepage::network::PostgresPacketWriter>, noisepage::common::ManagedPointer<noisepage::network::Portal>) const ../src/traffic_cop/traffic_cop.cpp:447
#18 0x560dab2633ed in ExecutePortal ../src/network/postgres/postgres_network_commands.cpp:39
#19 0x560dab265949 in noisepage::network::SimpleQueryCommand::Exec(noisepage::common::ManagedPointer<noisepage::network::ProtocolInterpreter>, noisepage::common::ManagedPointer<noisepage::network::PostgresPacketWriter>, noisepage::common::ManagedPointer<noisepage::trafficcop::TrafficCop>, noisepage::common::ManagedPointer<noisepage::network::ConnectionContext>) ../src/network/postgres/postgres_network_commands.cpp:192
#20 0x560dab2d406a in noisepage::network::PostgresProtocolInterpreter::Process(noisepage::common::ManagedPointer<noisepage::network::ReadBuffer>, noisepage::common::ManagedPointer<noisepage::network::WriteQueue>, noisepage::common::ManagedPointer<noisepage::trafficcop::TrafficCop>, noisepage::common::ManagedPointer<noisepage::network::ConnectionContext>) ../src/network/postgres/postgres_protocol_interpreter.cpp:45
#21 0x560dab2048f9 in noisepage::network::ConnectionHandle::Process() ../src/network/connection_handle.cpp:182
#22 0x560dab207eb2 in noisepage::network::ConnectionHandleStateMachineTransition::Process(noisepage::common::ManagedPointer<noisepage::network::ConnectionHandle>) ../src/network/connection_handle.cpp:76
#23 0x560dab203c25 in noisepage::network::ConnectionHandle::StateMachine::Accept(noisepage::network::Transition, noisepage::common::ManagedPointer<noisepage::network::ConnectionHandle>) ../src/network/connection_handle.cpp:129
#24 0x560dab204677 in noisepage::network::ConnectionHandle::HandleEvent(int, short) ../src/network/connection_handle.cpp:169
#25 0x560dab204d81 in operator() ../src/network/connection_handle.cpp:217
#26 0x560dab204db7 in _FUN ../src/network/connection_handle.cpp:218
#27 0x7fa70846813e  (/lib/x86_64-linux-gnu/libevent-2.1.so.7+0x2113e)

Direct leak of 2 byte(s) in 1 object(s) allocated from:

0 0x7fa70869e947 in operator new(unsigned long) (/lib/x86_64-linux-gnu/libasan.so.5+0x10f947)

#1 0x560daa8efab3 in __gnu_cxx::new_allocator<noisepage::common::StrongTypeAlias<noisepage::storage::tags::col_id_t_typedef_tag, unsigned short> >::allocate(unsigned long, void const*) /usr/include/c++/9/ext/new_allocator.h:114
#2 0x560daa8ec671 in std::allocator_traits<std::allocator<noisepage::common::StrongTypeAlias<noisepage::storage::tags::col_id_t_typedef_tag, unsigned short> > >::allocate(std::allocator<noisepage::common::StrongTypeAlias<noisepage::storage::tags::col_id_t_typedef_tag, unsigned short> >&, unsigned long) /usr/include/c++/9/bits/alloc_traits.h:444
#3 0x560daa8e8a69 in std::_Vector_base<noisepage::common::StrongTypeAlias<noisepage::storage::tags::col_id_t_typedef_tag, unsigned short>, std::allocator<noisepage::common::StrongTypeAlias<noisepage::storage::tags::col_id_t_typedef_tag, unsigned short> > >::_M_allocate(unsigned long) /usr/include/c++/9/bits/stl_vector.h:343
#4 0x560daa8e9448 in std::_Vector_base<noisepage::common::StrongTypeAlias<noisepage::storage::tags::col_id_t_typedef_tag, unsigned short>, std::allocator<noisepage::common::StrongTypeAlias<noisepage::storage::tags::col_id_t_typedef_tag, unsigned short> > >::_M_create_storage(unsigned long) /usr/include/c++/9/bits/stl_vector.h:358
#5 0x560daa8e4c78 in std::_Vector_base<noisepage::common::StrongTypeAlias<noisepage::storage::tags::col_id_t_typedef_tag, unsigned short>, std::allocator<noisepage::common::StrongTypeAlias<noisepage::storage::tags::col_id_t_typedef_tag, unsigned short> > >::_Vector_base(unsigned long, std::allocator<noisepage::common::StrongTypeAlias<noisepage::storage::tags::col_id_t_typedef_tag, unsigned short> > const&) /usr/include/c++/9/bits/stl_vector.h:302
#6 0x560daa8e1098 in std::vector<noisepage::common::StrongTypeAlias<noisepage::storage::tags::col_id_t_typedef_tag, unsigned short>, std::allocator<noisepage::common::StrongTypeAlias<noisepage::storage::tags::col_id_t_typedef_tag, unsigned short> > >::vector(std::vector<noisepage::common::StrongTypeAlias<noisepage::storage::tags::col_id_t_typedef_tag, unsigned short>, std::allocator<noisepage::common::StrongTypeAlias<noisepage::storage::tags::col_id_t_typedef_tag, unsigned short> > > const&) /usr/include/c++/9/bits/stl_vector.h:552
#7 0x560daafdaaa4 in noisepage::execution::sql::TableVectorIterator::Init(unsigned int, unsigned int) ../src/execution/sql/table_vector_iterator.cpp:59
#8 0x560daafda22b in noisepage::execution::sql::TableVectorIterator::Init() ../src/execution/sql/table_vector_iterator.cpp:28
#9 0x560dab158c8f in OpTableVectorIteratorPerformInit ../src/execution/vm/bytecode_handlers.cpp:25
#10 0x560daad30e0c in noisepage::execution::vm::VM::Interpret(unsigned char const*, noisepage::execution::vm::VM::Frame*) ../src/execution/vm/vm.cpp:650
#11 0x560daad4b386 in noisepage::execution::vm::VM::ExecuteCall(unsigned char const*, noisepage::execution::vm::VM::Frame*) ../src/execution/vm/vm.cpp:2620
#12 0x560daad2f426 in noisepage::execution::vm::VM::Interpret(unsigned char const*, noisepage::execution::vm::VM::Frame*) ../src/execution/vm/vm.cpp:447
#13 0x560daad2425c in noisepage::execution::vm::VM::InvokeFunction(noisepage::execution::vm::Module const*, unsigned short, unsigned char const*) ../src/execution/vm/vm.cpp:112
#14 0x560dab2933d8 in noisepage::execution::vm::Module::GetFunction<void, void*>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, noisepage::execution::vm::ExecutionMode, std::function<void (void*)>*)::{lambda(void*)#1}::operator()(void*) const ../src/include/execution/vm/module.h:222
#15 0x560dab29a164 in std::_Function_handler<void (void*), noisepage::execution::vm::Module::GetFunction<void, void*>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, noisepage::execution::vm::ExecutionMode, std::function<void (void*)>*)::{lambda(void*)#1}>::_M_invoke(std::_Any_data const&, void*&&) /usr/include/c++/9/bits/std_function.h:300
#16 0x560dab293900 in std::function<void (void*)>::operator()(void*) const /usr/include/c++/9/bits/std_function.h:688
#17 0x560dab28ee85 in noisepage::execution::compiler::ExecutableQuery::Fragment::Run(std::byte*, noisepage::execution::vm::ExecutionMode) const ../src/execution/compiler/executable_query.cpp:45
#18 0x560dab291798 in noisepage::execution::compiler::ExecutableQuery::Run(noisepage::common::ManagedPointer<noisepage::execution::exec::ExecutionContext>, noisepage::execution::vm::ExecutionMode) ../src/execution/compiler/executable_query.cpp:165
#19 0x560dabdc5578 in noisepage::trafficcop::TrafficCop::RunExecutableQuery(noisepage::common::ManagedPointer<noisepage::network::ConnectionContext>, noisepage::common::ManagedPointer<noisepage::network::PostgresPacketWriter>, noisepage::common::ManagedPointer<noisepage::network::Portal>) const ../src/traffic_cop/traffic_cop.cpp:447
#20 0x560dab2633ed in ExecutePortal ../src/network/postgres/postgres_network_commands.cpp:39
#21 0x560dab265949 in noisepage::network::SimpleQueryCommand::Exec(noisepage::common::ManagedPointer<noisepage::network::ProtocolInterpreter>, noisepage::common::ManagedPointer<noisepage::network::PostgresPacketWriter>, noisepage::common::ManagedPointer<noisepage::trafficcop::TrafficCop>, noisepage::common::ManagedPointer<noisepage::network::ConnectionContext>) ../src/network/postgres/postgres_network_commands.cpp:192
#22 0x560dab2d406a in noisepage::network::PostgresProtocolInterpreter::Process(noisepage::common::ManagedPointer<noisepage::network::ReadBuffer>, noisepage::common::ManagedPointer<noisepage::network::WriteQueue>, noisepage::common::ManagedPointer<noisepage::trafficcop::TrafficCop>, noisepage::common::ManagedPointer<noisepage::network::ConnectionContext>) ../src/network/postgres/postgres_protocol_interpreter.cpp:45
#23 0x560dab2048f9 in noisepage::network::ConnectionHandle::Process() ../src/network/connection_handle.cpp:182
#24 0x560dab207eb2 in noisepage::network::ConnectionHandleStateMachineTransition::Process(noisepage::common::ManagedPointer<noisepage::network::ConnectionHandle>) ../src/network/connection_handle.cpp:76
#25 0x560dab203c25 in noisepage::network::ConnectionHandle::StateMachine::Accept(noisepage::network::Transition, noisepage::common::ManagedPointer<noisepage::network::ConnectionHandle>) ../src/network/connection_handle.cpp:129
#26 0x560dab204677 in noisepage::network::ConnectionHandle::HandleEvent(int, short) ../src/network/connection_handle.cpp:169
#27 0x560dab204d81 in operator() ../src/network/connection_handle.cpp:217
#28 0x560dab204db7 in _FUN ../src/network/connection_handle.cpp:218
#29 0x7fa70846813e  (/lib/x86_64-linux-gnu/libevent-2.1.so.7+0x2113e)

Direct leak of 2 byte(s) in 1 object(s) allocated from:

0 0x7fa70869e947 in operator new(unsigned long) (/lib/x86_64-linux-gnu/libasan.so.5+0x10f947)

#1 0x560daa8efab3 in __gnu_cxx::new_allocator<noisepage::common::StrongTypeAlias<noisepage::storage::tags::col_id_t_typedef_tag, unsigned short> >::allocate(unsigned long, void const*) /usr/include/c++/9/ext/new_allocator.h:114
#2 0x560daa8ec671 in std::allocator_traits<std::allocator<noisepage::common::StrongTypeAlias<noisepage::storage::tags::col_id_t_typedef_tag, unsigned short> > >::allocate(std::allocator<noisepage::common::StrongTypeAlias<noisepage::storage::tags::col_id_t_typedef_tag, unsigned short> >&, unsigned long) /usr/include/c++/9/bits/alloc_traits.h:444
#3 0x560daa8e8a69 in std::_Vector_base<noisepage::common::StrongTypeAlias<noisepage::storage::tags::col_id_t_typedef_tag, unsigned short>, std::allocator<noisepage::common::StrongTypeAlias<noisepage::storage::tags::col_id_t_typedef_tag, unsigned short> > >::_M_allocate(unsigned long) /usr/include/c++/9/bits/stl_vector.h:343
#4 0x560daa8e9448 in std::_Vector_base<noisepage::common::StrongTypeAlias<noisepage::storage::tags::col_id_t_typedef_tag, unsigned short>, std::allocator<noisepage::common::StrongTypeAlias<noisepage::storage::tags::col_id_t_typedef_tag, unsigned short> > >::_M_create_storage(unsigned long) /usr/include/c++/9/bits/stl_vector.h:358
#5 0x560daa8e4c78 in std::_Vector_base<noisepage::common::StrongTypeAlias<noisepage::storage::tags::col_id_t_typedef_tag, unsigned short>, std::allocator<noisepage::common::StrongTypeAlias<noisepage::storage::tags::col_id_t_typedef_tag, unsigned short> > >::_Vector_base(unsigned long, std::allocator<noisepage::common::StrongTypeAlias<noisepage::storage::tags::col_id_t_typedef_tag, unsigned short> > const&) /usr/include/c++/9/bits/stl_vector.h:302
#6 0x560daa8e1098 in std::vector<noisepage::common::StrongTypeAlias<noisepage::storage::tags::col_id_t_typedef_tag, unsigned short>, std::allocator<noisepage::common::StrongTypeAlias<noisepage::storage::tags::col_id_t_typedef_tag, unsigned short> > >::vector(std::vector<noisepage::common::StrongTypeAlias<noisepage::storage::tags::col_id_t_typedef_tag, unsigned short>, std::allocator<noisepage::common::StrongTypeAlias<noisepage::storage::tags::col_id_t_typedef_tag, unsigned short> > > const&) /usr/include/c++/9/bits/stl_vector.h:552
#7 0x560daa8de7f4 in noisepage::storage::SqlTable::InitializerForProjectedRow(std::vector<noisepage::common::StrongTypeAlias<noisepage::catalog::tags::col_oid_t_typedef_tag, unsigned int>, std::allocator<noisepage::common::StrongTypeAlias<noisepage::catalog::tags::col_oid_t_typedef_tag, unsigned int> > > const&) const ../src/include/storage/sql_table.h:224
#8 0x560dab185d47 in noisepage::execution::sql::StorageInterface::StorageInterface(noisepage::execution::exec::ExecutionContext*, noisepage::common::StrongTypeAlias<noisepage::catalog::tags::table_oid_t_typedef_tag, unsigned int>, unsigned int*, unsigned int, bool) ../src/execution/sql/storage_interface.cpp:21
#9 0x560dab1595cc in OpStorageInterfaceInit ../src/execution/vm/bytecode_handlers.cpp:207
#10 0x560daad44d7c in noisepage::execution::vm::VM::Interpret(unsigned char const*, noisepage::execution::vm::VM::Frame*) ../src/execution/vm/vm.cpp:2036
#11 0x560daad4b386 in noisepage::execution::vm::VM::ExecuteCall(unsigned char const*, noisepage::execution::vm::VM::Frame*) ../src/execution/vm/vm.cpp:2620
#12 0x560daad2f426 in noisepage::execution::vm::VM::Interpret(unsigned char const*, noisepage::execution::vm::VM::Frame*) ../src/execution/vm/vm.cpp:447
#13 0x560daad2425c in noisepage::execution::vm::VM::InvokeFunction(noisepage::execution::vm::Module const*, unsigned short, unsigned char const*) ../src/execution/vm/vm.cpp:112
#14 0x560dab2933d8 in noisepage::execution::vm::Module::GetFunction<void, void*>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, noisepage::execution::vm::ExecutionMode, std::function<void (void*)>*)::{lambda(void*)#1}::operator()(void*) const ../src/include/execution/vm/module.h:222
#15 0x560dab29a164 in std::_Function_handler<void (void*), noisepage::execution::vm::Module::GetFunction<void, void*>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, noisepage::execution::vm::ExecutionMode, std::function<void (void*)>*)::{lambda(void*)#1}>::_M_invoke(std::_Any_data const&, void*&&) /usr/include/c++/9/bits/std_function.h:300
#16 0x560dab293900 in std::function<void (void*)>::operator()(void*) const /usr/include/c++/9/bits/std_function.h:688
#17 0x560dab28ee85 in noisepage::execution::compiler::ExecutableQuery::Fragment::Run(std::byte*, noisepage::execution::vm::ExecutionMode) const ../src/execution/compiler/executable_query.cpp:45
#18 0x560dab291798 in noisepage::execution::compiler::ExecutableQuery::Run(noisepage::common::ManagedPointer<noisepage::execution::exec::ExecutionContext>, noisepage::execution::vm::ExecutionMode) ../src/execution/compiler/executable_query.cpp:165
#19 0x560dabdc5578 in noisepage::trafficcop::TrafficCop::RunExecutableQuery(noisepage::common::ManagedPointer<noisepage::network::ConnectionContext>, noisepage::common::ManagedPointer<noisepage::network::PostgresPacketWriter>, noisepage::common::ManagedPointer<noisepage::network::Portal>) const ../src/traffic_cop/traffic_cop.cpp:447
#20 0x560dab2633ed in ExecutePortal ../src/network/postgres/postgres_network_commands.cpp:39
#21 0x560dab265949 in noisepage::network::SimpleQueryCommand::Exec(noisepage::common::ManagedPointer<noisepage::network::ProtocolInterpreter>, noisepage::common::ManagedPointer<noisepage::network::PostgresPacketWriter>, noisepage::common::ManagedPointer<noisepage::trafficcop::TrafficCop>, noisepage::common::ManagedPointer<noisepage::network::ConnectionContext>) ../src/network/postgres/postgres_network_commands.cpp:192
#22 0x560dab2d406a in noisepage::network::PostgresProtocolInterpreter::Process(noisepage::common::ManagedPointer<noisepage::network::ReadBuffer>, noisepage::common::ManagedPointer<noisepage::network::WriteQueue>, noisepage::common::ManagedPointer<noisepage::trafficcop::TrafficCop>, noisepage::common::ManagedPointer<noisepage::network::ConnectionContext>) ../src/network/postgres/postgres_protocol_interpreter.cpp:45
#23 0x560dab2048f9 in noisepage::network::ConnectionHandle::Process() ../src/network/connection_handle.cpp:182
#24 0x560dab207eb2 in noisepage::network::ConnectionHandleStateMachineTransition::Process(noisepage::common::ManagedPointer<noisepage::network::ConnectionHandle>) ../src/network/connection_handle.cpp:76
#25 0x560dab203c25 in noisepage::network::ConnectionHandle::StateMachine::Accept(noisepage::network::Transition, noisepage::common::ManagedPointer<noisepage::network::ConnectionHandle>) ../src/network/connection_handle.cpp:129
#26 0x560dab204677 in noisepage::network::ConnectionHandle::HandleEvent(int, short) ../src/network/connection_handle.cpp:169
#27 0x560dab204d81 in operator() ../src/network/connection_handle.cpp:217
#28 0x560dab204db7 in _FUN ../src/network/connection_handle.cpp:218
#29 0x7fa70846813e  (/lib/x86_64-linux-gnu/libevent-2.1.so.7+0x2113e)

Direct leak of 1 byte(s) in 1 object(s) allocated from:

0 0x7fa70869d7b5 in __interceptor_aligned_alloc (/lib/x86_64-linux-gnu/libasan.so.5+0x10e7b5)

#1 0x560daad4e77b in noisepage::execution::util::Memory::MallocAligned(unsigned long, unsigned long) ../src/include/execution/util/memory.h:54
#2 0x560daaddb25c in noisepage::execution::sql::MemoryPool::AllocateAligned(unsigned long, unsigned long, bool) ../src/execution/sql/memory_pool.cpp:35
#3 0x560dab18633a in noisepage::execution::sql::StorageInterface::StorageInterface(noisepage::execution::exec::ExecutionContext*, noisepage::common::StrongTypeAlias<noisepage::catalog::tags::table_oid_t_typedef_tag, unsigned int>, unsigned int*, unsigned int, bool) ../src/execution/sql/storage_interface.cpp:32
#4 0x560dab1595cc in OpStorageInterfaceInit ../src/execution/vm/bytecode_handlers.cpp:207
#5 0x560daad44d7c in noisepage::execution::vm::VM::Interpret(unsigned char const*, noisepage::execution::vm::VM::Frame*) ../src/execution/vm/vm.cpp:2036
#6 0x560daad4b386 in noisepage::execution::vm::VM::ExecuteCall(unsigned char const*, noisepage::execution::vm::VM::Frame*) ../src/execution/vm/vm.cpp:2620
#7 0x560daad2f426 in noisepage::execution::vm::VM::Interpret(unsigned char const*, noisepage::execution::vm::VM::Frame*) ../src/execution/vm/vm.cpp:447
#8 0x560daad2425c in noisepage::execution::vm::VM::InvokeFunction(noisepage::execution::vm::Module const*, unsigned short, unsigned char const*) ../src/execution/vm/vm.cpp:112
#9 0x560dab2933d8 in noisepage::execution::vm::Module::GetFunction<void, void*>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, noisepage::execution::vm::ExecutionMode, std::function<void (void*)>*)::{lambda(void*)#1}::operator()(void*) const ../src/include/execution/vm/module.h:222
#10 0x560dab29a164 in std::_Function_handler<void (void*), noisepage::execution::vm::Module::GetFunction<void, void*>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, noisepage::execution::vm::ExecutionMode, std::function<void (void*)>*)::{lambda(void*)#1}>::_M_invoke(std::_Any_data const&, void*&&) /usr/include/c++/9/bits/std_function.h:300
#11 0x560dab293900 in std::function<void (void*)>::operator()(void*) const /usr/include/c++/9/bits/std_function.h:688
#12 0x560dab28ee85 in noisepage::execution::compiler::ExecutableQuery::Fragment::Run(std::byte*, noisepage::execution::vm::ExecutionMode) const ../src/execution/compiler/executable_query.cpp:45
#13 0x560dab291798 in noisepage::execution::compiler::ExecutableQuery::Run(noisepage::common::ManagedPointer<noisepage::execution::exec::ExecutionContext>, noisepage::execution::vm::ExecutionMode) ../src/execution/compiler/executable_query.cpp:165
#14 0x560dabdc5578 in noisepage::trafficcop::TrafficCop::RunExecutableQuery(noisepage::common::ManagedPointer<noisepage::network::ConnectionContext>, noisepage::common::ManagedPointer<noisepage::network::PostgresPacketWriter>, noisepage::common::ManagedPointer<noisepage::network::Portal>) const ../src/traffic_cop/traffic_cop.cpp:447
#15 0x560dab2633ed in ExecutePortal ../src/network/postgres/postgres_network_commands.cpp:39
#16 0x560dab265949 in noisepage::network::SimpleQueryCommand::Exec(noisepage::common::ManagedPointer<noisepage::network::ProtocolInterpreter>, noisepage::common::ManagedPointer<noisepage::network::PostgresPacketWriter>, noisepage::common::ManagedPointer<noisepage::trafficcop::TrafficCop>, noisepage::common::ManagedPointer<noisepage::network::ConnectionContext>) ../src/network/postgres/postgres_network_commands.cpp:192
#17 0x560dab2d406a in noisepage::network::PostgresProtocolInterpreter::Process(noisepage::common::ManagedPointer<noisepage::network::ReadBuffer>, noisepage::common::ManagedPointer<noisepage::network::WriteQueue>, noisepage::common::ManagedPointer<noisepage::trafficcop::TrafficCop>, noisepage::common::ManagedPointer<noisepage::network::ConnectionContext>) ../src/network/postgres/postgres_protocol_interpreter.cpp:45
#18 0x560dab2048f9 in noisepage::network::ConnectionHandle::Process() ../src/network/connection_handle.cpp:182
#19 0x560dab207eb2 in noisepage::network::ConnectionHandleStateMachineTransition::Process(noisepage::common::ManagedPointer<noisepage::network::ConnectionHandle>) ../src/network/connection_handle.cpp:76
#20 0x560dab203c25 in noisepage::network::ConnectionHandle::StateMachine::Accept(noisepage::network::Transition, noisepage::common::ManagedPointer<noisepage::network::ConnectionHandle>) ../src/network/connection_handle.cpp:129
#21 0x560dab204677 in noisepage::network::ConnectionHandle::HandleEvent(int, short) ../src/network/connection_handle.cpp:169
#22 0x560dab204d81 in operator() ../src/network/connection_handle.cpp:217
#23 0x560dab204db7 in _FUN ../src/network/connection_handle.cpp:218
#24 0x7fa70846813e  (/lib/x86_64-linux-gnu/libevent-2.1.so.7+0x2113e)

Indirect leak of 8192 byte(s) in 1 object(s) allocated from:

0 0x7fa70869eb47 in operator new[](unsigned long) (/lib/x86_64-linux-gnu/libasan.so.5+0x10fb47)

#1 0x560daae13584 in std::_MakeUniq<std::byte []>::__array std::make_unique<std::byte []>(unsigned long) /usr/include/c++/9/bits/unique_ptr.h:863
#2 0x560daae0fcd4 in noisepage::execution::sql::VectorProjection::Initialize(std::vector<noisepage::execution::sql::TypeId, std::allocator<noisepage::execution::sql::TypeId> > const&) ../src/execution/sql/vector_projection.cpp:47
#3 0x560daafdaafc in noisepage::execution::sql::TableVectorIterator::Init(unsigned int, unsigned int) ../src/execution/sql/table_vector_iterator.cpp:60
#4 0x560daafda22b in noisepage::execution::sql::TableVectorIterator::Init() ../src/execution/sql/table_vector_iterator.cpp:28
#5 0x560dab158c8f in OpTableVectorIteratorPerformInit ../src/execution/vm/bytecode_handlers.cpp:25
#6 0x560daad30e0c in noisepage::execution::vm::VM::Interpret(unsigned char const*, noisepage::execution::vm::VM::Frame*) ../src/execution/vm/vm.cpp:650
#7 0x560daad4b386 in noisepage::execution::vm::VM::ExecuteCall(unsigned char const*, noisepage::execution::vm::VM::Frame*) ../src/execution/vm/vm.cpp:2620
#8 0x560daad2f426 in noisepage::execution::vm::VM::Interpret(unsigned char const*, noisepage::execution::vm::VM::Frame*) ../src/execution/vm/vm.cpp:447
#9 0x560daad2425c in noisepage::execution::vm::VM::InvokeFunction(noisepage::execution::vm::Module const*, unsigned short, unsigned char const*) ../src/execution/vm/vm.cpp:112
#10 0x560dab2933d8 in noisepage::execution::vm::Module::GetFunction<void, void*>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, noisepage::execution::vm::ExecutionMode, std::function<void (void*)>*)::{lambda(void*)#1}::operator()(void*) const ../src/include/execution/vm/module.h:222
#11 0x560dab29a164 in std::_Function_handler<void (void*), noisepage::execution::vm::Module::GetFunction<void, void*>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, noisepage::execution::vm::ExecutionMode, std::function<void (void*)>*)::{lambda(void*)#1}>::_M_invoke(std::_Any_data const&, void*&&) /usr/include/c++/9/bits/std_function.h:300
#12 0x560dab293900 in std::function<void (void*)>::operator()(void*) const /usr/include/c++/9/bits/std_function.h:688
#13 0x560dab28ee85 in noisepage::execution::compiler::ExecutableQuery::Fragment::Run(std::byte*, noisepage::execution::vm::ExecutionMode) const ../src/execution/compiler/executable_query.cpp:45
#14 0x560dab291798 in noisepage::execution::compiler::ExecutableQuery::Run(noisepage::common::ManagedPointer<noisepage::execution::exec::ExecutionContext>, noisepage::execution::vm::ExecutionMode) ../src/execution/compiler/executable_query.cpp:165
#15 0x560dabdc5578 in noisepage::trafficcop::TrafficCop::RunExecutableQuery(noisepage::common::ManagedPointer<noisepage::network::ConnectionContext>, noisepage::common::ManagedPointer<noisepage::network::PostgresPacketWriter>, noisepage::common::ManagedPointer<noisepage::network::Portal>) const ../src/traffic_cop/traffic_cop.cpp:447
#16 0x560dab2633ed in ExecutePortal ../src/network/postgres/postgres_network_commands.cpp:39
#17 0x560dab265949 in noisepage::network::SimpleQueryCommand::Exec(noisepage::common::ManagedPointer<noisepage::network::ProtocolInterpreter>, noisepage::common::ManagedPointer<noisepage::network::PostgresPacketWriter>, noisepage::common::ManagedPointer<noisepage::trafficcop::TrafficCop>, noisepage::common::ManagedPointer<noisepage::network::ConnectionContext>) ../src/network/postgres/postgres_network_commands.cpp:192
#18 0x560dab2d406a in noisepage::network::PostgresProtocolInterpreter::Process(noisepage::common::ManagedPointer<noisepage::network::ReadBuffer>, noisepage::common::ManagedPointer<noisepage::network::WriteQueue>, noisepage::common::ManagedPointer<noisepage::trafficcop::TrafficCop>, noisepage::common::ManagedPointer<noisepage::network::ConnectionContext>) ../src/network/postgres/postgres_protocol_interpreter.cpp:45
#19 0x560dab2048f9 in noisepage::network::ConnectionHandle::Process() ../src/network/connection_handle.cpp:182
#20 0x560dab207eb2 in noisepage::network::ConnectionHandleStateMachineTransition::Process(noisepage::common::ManagedPointer<noisepage::network::ConnectionHandle>) ../src/network/connection_handle.cpp:76
#21 0x560dab203c25 in noisepage::network::ConnectionHandle::StateMachine::Accept(noisepage::network::Transition, noisepage::common::ManagedPointer<noisepage::network::ConnectionHandle>) ../src/network/connection_handle.cpp:129
#22 0x560dab204677 in noisepage::network::ConnectionHandle::HandleEvent(int, short) ../src/network/connection_handle.cpp:169
#23 0x560dab204d81 in operator() ../src/network/connection_handle.cpp:217
#24 0x560dab204db7 in _FUN ../src/network/connection_handle.cpp:218
#25 0x7fa70846813e  (/lib/x86_64-linux-gnu/libevent-2.1.so.7+0x2113e)

Indirect leak of 256 byte(s) in 1 object(s) allocated from:

0 0x7fa70869e947 in operator new(unsigned long) (/lib/x86_64-linux-gnu/libasan.so.5+0x10f947)

#1 0x560daa9ea3e0 in __gnu_cxx::new_allocator<unsigned long>::allocate(unsigned long, void const*) /usr/include/c++/9/ext/new_allocator.h:114
#2 0x560daa9e28e7 in std::allocator_traits<std::allocator<unsigned long> >::allocate(std::allocator<unsigned long>&, unsigned long) /usr/include/c++/9/bits/alloc_traits.h:444
#3 0x560daaac19ad in std::_Vector_base<unsigned long, std::allocator<unsigned long> >::_M_allocate(unsigned long) /usr/include/c++/9/bits/stl_vector.h:343
#4 0x560daae35d7f in std::vector<unsigned long, std::allocator<unsigned long> >::reserve(unsigned long) /usr/include/c++/9/bits/vector.tcc:78
#5 0x560daae3548a in noisepage::execution::util::BitVector<unsigned long, std::allocator<unsigned long> >::Reserve(unsigned int) ../src/include/execution/util/bit_vector.h:452
#6 0x560daae2ae00 in noisepage::execution::sql::Vector::Vector(noisepage::execution::sql::TypeId) ../src/execution/sql/vector.cpp:19
#7 0x560daae12f95 in std::_MakeUniq<noisepage::execution::sql::Vector>::__single_object std::make_unique<noisepage::execution::sql::Vector, noisepage::execution::sql::TypeId const&>(noisepage::execution::sql::TypeId const&) /usr/include/c++/9/bits/unique_ptr.h:857
#8 0x560daae0f99c in noisepage::execution::sql::VectorProjection::InitializeEmpty(std::vector<noisepage::execution::sql::TypeId, std::allocator<noisepage::execution::sql::TypeId> > const&) ../src/execution/sql/vector_projection.cpp:28
#9 0x560daae0fb55 in noisepage::execution::sql::VectorProjection::Initialize(std::vector<noisepage::execution::sql::TypeId, std::allocator<noisepage::execution::sql::TypeId> > const&) ../src/execution/sql/vector_projection.cpp:37
#10 0x560daafdaafc in noisepage::execution::sql::TableVectorIterator::Init(unsigned int, unsigned int) ../src/execution/sql/table_vector_iterator.cpp:60
#11 0x560daafda22b in noisepage::execution::sql::TableVectorIterator::Init() ../src/execution/sql/table_vector_iterator.cpp:28
#12 0x560dab158c8f in OpTableVectorIteratorPerformInit ../src/execution/vm/bytecode_handlers.cpp:25
#13 0x560daad30e0c in noisepage::execution::vm::VM::Interpret(unsigned char const*, noisepage::execution::vm::VM::Frame*) ../src/execution/vm/vm.cpp:650
#14 0x560daad4b386 in noisepage::execution::vm::VM::ExecuteCall(unsigned char const*, noisepage::execution::vm::VM::Frame*) ../src/execution/vm/vm.cpp:2620
#15 0x560daad2f426 in noisepage::execution::vm::VM::Interpret(unsigned char const*, noisepage::execution::vm::VM::Frame*) ../src/execution/vm/vm.cpp:447
#16 0x560daad2425c in noisepage::execution::vm::VM::InvokeFunction(noisepage::execution::vm::Module const*, unsigned short, unsigned char const*) ../src/execution/vm/vm.cpp:112
#17 0x560dab2933d8 in noisepage::execution::vm::Module::GetFunction<void, void*>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, noisepage::execution::vm::ExecutionMode, std::function<void (void*)>*)::{lambda(void*)#1}::operator()(void*) const ../src/include/execution/vm/module.h:222
#18 0x560dab29a164 in std::_Function_handler<void (void*), noisepage::execution::vm::Module::GetFunction<void, void*>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, noisepage::execution::vm::ExecutionMode, std::function<void (void*)>*)::{lambda(void*)#1}>::_M_invoke(std::_Any_data const&, void*&&) /usr/include/c++/9/bits/std_function.h:300
#19 0x560dab293900 in std::function<void (void*)>::operator()(void*) const /usr/include/c++/9/bits/std_function.h:688
#20 0x560dab28ee85 in noisepage::execution::compiler::ExecutableQuery::Fragment::Run(std::byte*, noisepage::execution::vm::ExecutionMode) const ../src/execution/compiler/executable_query.cpp:45
#21 0x560dab291798 in noisepage::execution::compiler::ExecutableQuery::Run(noisepage::common::ManagedPointer<noisepage::execution::exec::ExecutionContext>, noisepage::execution::vm::ExecutionMode) ../src/execution/compiler/executable_query.cpp:165
#22 0x560dabdc5578 in noisepage::trafficcop::TrafficCop::RunExecutableQuery(noisepage::common::ManagedPointer<noisepage::network::ConnectionContext>, noisepage::common::ManagedPointer<noisepage::network::PostgresPacketWriter>, noisepage::common::ManagedPointer<noisepage::network::Portal>) const ../src/traffic_cop/traffic_cop.cpp:447
#23 0x560dab2633ed in ExecutePortal ../src/network/postgres/postgres_network_commands.cpp:39
#24 0x560dab265949 in noisepage::network::SimpleQueryCommand::Exec(noisepage::common::ManagedPointer<noisepage::network::ProtocolInterpreter>, noisepage::common::ManagedPointer<noisepage::network::PostgresPacketWriter>, noisepage::common::ManagedPointer<noisepage::trafficcop::TrafficCop>, noisepage::common::ManagedPointer<noisepage::network::ConnectionContext>) ../src/network/postgres/postgres_network_commands.cpp:192
#25 0x560dab2d406a in noisepage::network::PostgresProtocolInterpreter::Process(noisepage::common::ManagedPointer<noisepage::network::ReadBuffer>, noisepage::common::ManagedPointer<noisepage::network::WriteQueue>, noisepage::common::ManagedPointer<noisepage::trafficcop::TrafficCop>, noisepage::common::ManagedPointer<noisepage::network::ConnectionContext>) ../src/network/postgres/postgres_protocol_interpreter.cpp:45
#26 0x560dab2048f9 in noisepage::network::ConnectionHandle::Process() ../src/network/connection_handle.cpp:182
#27 0x560dab207eb2 in noisepage::network::ConnectionHandleStateMachineTransition::Process(noisepage::common::ManagedPointer<noisepage::network::ConnectionHandle>) ../src/network/connection_handle.cpp:76
#28 0x560dab203c25 in noisepage::network::ConnectionHandle::StateMachine::Accept(noisepage::network::Transition, noisepage::common::ManagedPointer<noisepage::network::ConnectionHandle>) ../src/network/connection_handle.cpp:129
#29 0x560dab204677 in noisepage::network::ConnectionHandle::HandleEvent(int, short) ../src/network/connection_handle.cpp:169

Indirect leak of 168 byte(s) in 1 object(s) allocated from:

0 0x7fa70869e947 in operator new(unsigned long) (/lib/x86_64-linux-gnu/libasan.so.5+0x10f947)

#1 0x560daae12f87 in std::_MakeUniq<noisepage::execution::sql::Vector>::__single_object std::make_unique<noisepage::execution::sql::Vector, noisepage::execution::sql::TypeId const&>(noisepage::execution::sql::TypeId const&) /usr/include/c++/9/bits/unique_ptr.h:857
#2 0x560daae0f99c in noisepage::execution::sql::VectorProjection::InitializeEmpty(std::vector<noisepage::execution::sql::TypeId, std::allocator<noisepage::execution::sql::TypeId> > const&) ../src/execution/sql/vector_projection.cpp:28
#3 0x560daae0fb55 in noisepage::execution::sql::VectorProjection::Initialize(std::vector<noisepage::execution::sql::TypeId, std::allocator<noisepage::execution::sql::TypeId> > const&) ../src/execution/sql/vector_projection.cpp:37
#4 0x560daafdaafc in noisepage::execution::sql::TableVectorIterator::Init(unsigned int, unsigned int) ../src/execution/sql/table_vector_iterator.cpp:60
#5 0x560daafda22b in noisepage::execution::sql::TableVectorIterator::Init() ../src/execution/sql/table_vector_iterator.cpp:28
#6 0x560dab158c8f in OpTableVectorIteratorPerformInit ../src/execution/vm/bytecode_handlers.cpp:25
#7 0x560daad30e0c in noisepage::execution::vm::VM::Interpret(unsigned char const*, noisepage::execution::vm::VM::Frame*) ../src/execution/vm/vm.cpp:650
#8 0x560daad4b386 in noisepage::execution::vm::VM::ExecuteCall(unsigned char const*, noisepage::execution::vm::VM::Frame*) ../src/execution/vm/vm.cpp:2620
#9 0x560daad2f426 in noisepage::execution::vm::VM::Interpret(unsigned char const*, noisepage::execution::vm::VM::Frame*) ../src/execution/vm/vm.cpp:447
#10 0x560daad2425c in noisepage::execution::vm::VM::InvokeFunction(noisepage::execution::vm::Module const*, unsigned short, unsigned char const*) ../src/execution/vm/vm.cpp:112
#11 0x560dab2933d8 in noisepage::execution::vm::Module::GetFunction<void, void*>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, noisepage::execution::vm::ExecutionMode, std::function<void (void*)>*)::{lambda(void*)#1}::operator()(void*) const ../src/include/execution/vm/module.h:222
#12 0x560dab29a164 in std::_Function_handler<void (void*), noisepage::execution::vm::Module::GetFunction<void, void*>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, noisepage::execution::vm::ExecutionMode, std::function<void (void*)>*)::{lambda(void*)#1}>::_M_invoke(std::_Any_data const&, void*&&) /usr/include/c++/9/bits/std_function.h:300
#13 0x560dab293900 in std::function<void (void*)>::operator()(void*) const /usr/include/c++/9/bits/std_function.h:688
#14 0x560dab28ee85 in noisepage::execution::compiler::ExecutableQuery::Fragment::Run(std::byte*, noisepage::execution::vm::ExecutionMode) const ../src/execution/compiler/executable_query.cpp:45
#15 0x560dab291798 in noisepage::execution::compiler::ExecutableQuery::Run(noisepage::common::ManagedPointer<noisepage::execution::exec::ExecutionContext>, noisepage::execution::vm::ExecutionMode) ../src/execution/compiler/executable_query.cpp:165
#16 0x560dabdc5578 in noisepage::trafficcop::TrafficCop::RunExecutableQuery(noisepage::common::ManagedPointer<noisepage::network::ConnectionContext>, noisepage::common::ManagedPointer<noisepage::network::PostgresPacketWriter>, noisepage::common::ManagedPointer<noisepage::network::Portal>) const ../src/traffic_cop/traffic_cop.cpp:447
#17 0x560dab2633ed in ExecutePortal ../src/network/postgres/postgres_network_commands.cpp:39
#18 0x560dab265949 in noisepage::network::SimpleQueryCommand::Exec(noisepage::common::ManagedPointer<noisepage::network::ProtocolInterpreter>, noisepage::common::ManagedPointer<noisepage::network::PostgresPacketWriter>, noisepage::common::ManagedPointer<noisepage::trafficcop::TrafficCop>, noisepage::common::ManagedPointer<noisepage::network::ConnectionContext>) ../src/network/postgres/postgres_network_commands.cpp:192
#19 0x560dab2d406a in noisepage::network::PostgresProtocolInterpreter::Process(noisepage::common::ManagedPointer<noisepage::network::ReadBuffer>, noisepage::common::ManagedPointer<noisepage::network::WriteQueue>, noisepage::common::ManagedPointer<noisepage::trafficcop::TrafficCop>, noisepage::common::ManagedPointer<noisepage::network::ConnectionContext>) ../src/network/postgres/postgres_protocol_interpreter.cpp:45
#20 0x560dab2048f9 in noisepage::network::ConnectionHandle::Process() ../src/network/connection_handle.cpp:182
#21 0x560dab207eb2 in noisepage::network::ConnectionHandleStateMachineTransition::Process(noisepage::common::ManagedPointer<noisepage::network::ConnectionHandle>) ../src/network/connection_handle.cpp:76
#22 0x560dab203c25 in noisepage::network::ConnectionHandle::StateMachine::Accept(noisepage::network::Transition, noisepage::common::ManagedPointer<noisepage::network::ConnectionHandle>) ../src/network/connection_handle.cpp:129
#23 0x560dab204677 in noisepage::network::ConnectionHandle::HandleEvent(int, short) ../src/network/connection_handle.cpp:169
#24 0x560dab204d81 in operator() ../src/network/connection_handle.cpp:217
#25 0x560dab204db7 in _FUN ../src/network/connection_handle.cpp:218
#26 0x7fa70846813e  (/lib/x86_64-linux-gnu/libevent-2.1.so.7+0x2113e)

SUMMARY: AddressSanitizer: 25321 byte(s) leaked in 13 allocation(s).



---

Similar leak for running `NOISEPAGE_TRACE_FILE=./traces/select.test ant test-trace`.

I'm not sure how LeakSanitizer modifies the return code, but it looks like we successfully exit and then leak sanitizer decides "actually, you didn't successfully exit" and the testing framework was not catching this case. That or I need to read the test framework code more closely.

The bad news is that this happens on everything including master.
The good news is fixing this should help CI stability out quite a bit.
The bad news is I'm not sure why it is happening yet.
The good news is that it doesn't always happen, only for some code paths.
lmwnshn commented 3 years ago

select.test fails because of this short sequence:

statement ok
CREATE TABLE t (a INT PRIMARY KEY);

statement ok
INSERT INTO t VALUES (1);

statement error
INSERT INTO t VALUES (1);

statement ok
DROP TABLE t;
lmwnshn commented 3 years ago

test-unit fails because of DisconnectAbortTest