OK - there was a memory leak in find_vertex which I fixed. More problematic is another one: graphcore.cc:378 if (record_weight && u != v) { typename graph_traits<Graph>::out_edge_iterator ei, ei_end; for (boost::tuples::tie(ei, ei_end)= out_edges(v, g); ei != ei_end; ++ei) { if (target(*ei, g) == u) { edge= *ei; weight= get(boost::edge_weight, g, *ei); break; } } }
out_edges causes two oqgraph3::cursor object to be constructed. However tracking through with the debugger only ever shows one of them being destroyed. For some reason the other underlying intrusive pointer never gets released. This is the 'start' cursor created on line 295 of oqgraph_shim.h I dont know why this is the case. I mocked up a test of using boost_tie and a similar construct of classes and all the equivalent pointers eventually get freed so I dont think its a boost bug -- You received this bug notification because you are a member of OQgraph developers, which is a bug assignee. https://bugs.launchpad.net/bugs/1133093 Title: Crash on ORDER BY in OQGRAPH v3 Status in OQGraph Engine for MariaDB: Triaged Bug description: SELECT * FROM graph WHERE latch=1 AND origid=1 AND destid=6; works SELECT * FROM graph WHERE latch=1 AND origid=1 AND destid=6 ORDER BY seq; segfaults. To manage notifications about this bug go to: https://bugs.launchpad.net/oqgraph/+bug/1133093/+subscriptions -- Mailing list: https://launchpad.net/~oqgraph-dev Post to : oqgraph-dev@lists.launchpad.net Unsubscribe : https://launchpad.net/~oqgraph-dev More help : https://help.launchpad.net/ListHelp