← Back to team overview

oqgraph-dev team mailing list archive

Re: Trying the examples - mysqld segfault inserting into tol_tree caused by a NULL pointer in ha_oqgraph::open

 

Oqgraphv3 probably should validate that required create table options are
present. ;)

I'll send a worked example when I get home

Antony T Curtis
On Feb 19, 2013 4:24 AM, "Andrew McDonnell" <bugs@xxxxxxxxxxxxxxxxxxx>
wrote:

> Hi Arjen,
>
> I finally managed to get mariadb running and the ha_oqgraph.so plugin
> loaded.
> I had to turn off --skip-grant-tables, and then reset the db root password.
> Anyway.
>
> Given the passage of time I needed some direction as to what to do next.
> Before emailing you for advice I thought I would at least familiarise
> myself
> with the examples.
>
> So I did `bzr branch lp:oqgraph` to try the tree of life examples as
> described
> in your example blog.
>
> The instructions omit how to create the actual graph table, so I guessed:
>
> CREATE TABLE tol_tree (
>     latch   SMALLINT  UNSIGNED NULL,
>     origid  BIGINT    UNSIGNED NULL,
>     destid  BIGINT    UNSIGNED NULL,
>     weight  DOUBLE    NULL,
>     seq     BIGINT    UNSIGNED NULL,
>     linkid  BIGINT    UNSIGNED NULL,
>     KEY (latch, origid, destid) USING HASH,
>     KEY (latch, destid, origid) USING HASH
>   ) ENGINE=OQGRAPH;
>
> this worked :-)
>
> However,
>
> INSERT INTO tol_tree (origid,destid)
>   SELECT parent,id FROM tol WHERE parent IS NOT NULL;
>
> this failed ... (stack trace attachment)
>
> I note the stack trace is full of mangled C++ identifiers ...
>
> I then ran mysqld from gdb.  The fault repeated the same, but gdb let me
> see
> the identifiers. (attach #2) and of course, catch the fault and examine
> variables.
>
> It turns out that options->tablename in ha_oqgraph::open (--> table_name in
> table.cc) is NULL. And strlen barfs because table.cc isn't checking for a
> NULL.
>
> I am unfamiliar with the code as yet, so I don't know why this is NULL.
>
>
> As an aside, I am used to working with code that is defensively laced with
> assertions for NULL pointers, so this is a little different to me...
>
>
> Note: I am building cleanly on Debian Squeeze with boost 1.42
>
> --Andrew
>
>
>
> --
>
>
> https://launchpad.net/~andymc73
> http://blog.oldcomputerjunk.net
> Twitter: @andymc73
> GPG: http://www.andrewmcdonnell.net/gpg.html
>
>
>
> --
> Mailing list: https://launchpad.net/~oqgraph-dev
> Post to     : oqgraph-dev@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~oqgraph-dev
> More help   : https://help.launchpad.net/ListHelp
>
>

Follow ups

References