← Back to team overview

oqgraph-dev team mailing list archive

[Bug 1133093] Re: Crash on ORDER BY in OQGRAPH v3

 

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


References