ndarray wrapping mismatches "new []" and "free"
Using tcmalloc, I get a crash after invoking g.get_vertices() when using a filter, telling me that "free" is used to deallocate when "new []" was used for the allocation.
Suspect these "new []" are coming from numpy_bind.hh
Reproducing code:
import sys
from graph_tool.src.graph_tool import generation
def main(raw_args):
g = generation.random_graph(1000, lambda: (5, 5))
v_is_merge = g.new_vertex_property("bool")
v1 = g.add_vertex()
v2 = g.add_vertex()
v_is_merge[v1] = True
g.add_edge(v1, v2)
g.set_vertex_filter(v_is_merge)
print "vertex count: %d" % len(g.get_vertices())
g.set_vertex_filter(v_is_merge, inverted=True)
print "vertex count: %d" % len(g.get_vertices())
def _Main():
return main(sys.argv[1:])
if __name__ == '__main__':
_Main()
Sample crash:
vertex count: 1
F0000 00:00:1557270343.392356 151567 debugallocation.cc:456] RAW: memory allocation/deallocation mismatch at 0x7f237f066020: allocated with new [] being deallocated with free
@ 0x55726a2ad4b3 (anonymous namespace)::Google3AbortHook()
@ 0x55726a3a643c absl::base_internal::AtomicHook<>::operator()<>()
@ 0x55726a3a5a1e (anonymous namespace)::RawLogVA()
@ 0x55726a3a5845 absl::raw_logging_internal::RawLog()
@ 0x557269d48d81 MallocBlock::CheckLocked()
@ 0x557269d49b72 MallocBlock::CheckAndClear()
@ 0x55726a41c4e4 tc_free
@ 0x557268d79ab5 PyDataMem_FREE
@ 0x557268d79a8c _npy_free_cache
@ 0x557268d799e0 npy_free_cache
@ 0x557268d83a64 array_dealloc
@ 0x55726a1fe165 call_function
@ 0x55726a1f8a9a PyEval_EvalFrameEx
@ 0x55726a1fe0c3 call_function
@ 0x55726a1f8a9a PyEval_EvalFrameEx
@ 0x55726a1fe0c3 call_function
@ 0x55726a1f8a9a PyEval_EvalFrameEx
@ 0x55726a1f296a PyEval_EvalCodeEx
@ 0x55726a1fd21e exec_statement
@ 0x55726a1fa3be PyEval_EvalFrameEx
@ 0x55726a1f296a PyEval_EvalCodeEx
@ 0x55726a1fd917 call_function
@ 0x55726a1f8a9a PyEval_EvalFrameEx
@ 0x55726a1f296a PyEval_EvalCodeEx
@ 0x55726a17d956 function_call
@ 0x55726a150e82 PyObject_Call
@ 0x55726a151296 PyObject_CallMethod
@ 0x557269d82ba1 devtools::python_launcher::RunFileAsMain()
@ 0x557269d828e1 devtools::python_launcher::RunMainFromImporter()
@ 0x557269d81e7e devtools::python_launcher::Launcher_Main()
@ 0x557267b71197 main
@ 0x7f2386099bbd __libc_start_main
Aborted