On Sep 2, 2008, at 11:59 AM, Jay Pipes wrote:

Grant Limberg wrote:
On Aug 27, 2008, at 9:14 AM, Jay Pipes wrote:

Grant Limberg wrote:
I've got InnoDB 1.0.1 compiling with no warnings now. Now I just have to make it actually work! As of right now, drizzle is reporting the
following when starting up for make test:

080826  5:43:39 [ERROR] Unknown/unsupported table type: innodb
080826  5:43:39 [ERROR] Aborting

So it's obviously not quite working as expected yet. I've attempted to ./configure the project with --with-debug but that causes a linker error
in sql_derived.cc (see the bug report:
https://bugs.launchpad.net/drizzle/+bug/261687).  Once I have that
fixed, I do have a question.  How does one go about debugging this?

The easiest way is to use GDB. Run the server within a GDB session and
step through the code using GDB step/next/continue/break commands.

To use GDB, this is what I typically do...


So I've been going through some debugging and stepping through the code.
I ended up creating a blank project in Xcode to debug drizzle from.

From what I can tell the InnoDB code is either not being loaded, or not being recognized when trying to find the handler for the default storage
engine.  I can't seem to quite figure out why, however.  At one step
looking up the default table type, it looks as if it should find the
storage engine.  There's the "name" it's looking for and a "plugin"
variable with the same name, but things aren't quite working. This is
in ha_resolve_by_name() in handler.cc.

If anyone can take a look, I'd appreciate it.  branch is
lp:~grant-glsoftware/drizzle/drizzle-innodb-plugin

I pulled your branch and got a build error (remember to build with
warnings as errors...):

row/row0sel.c: In function ‘row_search_max_autoinc’:
row/row0sel.c:4792: warning: passing argument 2 of
‘row_search_autoinc_read_column’ discards qualifiers from pointer target
type

Adding const as a qualifier to the second parameter of
row_search_autoinc_read_column() fixes the issue.

Secondly, I got a linker error after fixing the above:

.libs/ha_innodb_la-log0recv.o: In function `recv_parse_log_recs':
/tmp/grant-innodb-plugin/storage/innobase/log/log0recv.c:1910: undefined
reference to `recv_calc_lsn_on_data_add'
/tmp/grant-innodb-plugin/storage/innobase/log/log0recv.c:1939: undefined
reference to `recv_calc_lsn_on_data_add'
/tmp/grant-innodb-plugin/storage/innobase/log/log0recv.c:1781: undefined
reference to `recv_calc_lsn_on_data_add'
/usr/bin/ld: .libs/ha_innodb.so.0.0.0: hidden symbol
`recv_calc_lsn_on_data_add' isn't defined
/usr/bin/ld: final link failed: Nonrepresentable section on output

This is apparently due to using ld -shared directly, instead of via gcc
as the front-end.  To fix, I tried running ./configure with the
--with-ld-shared="gcc -shared" option, but with no luck.

Monty, could you look into this issue and possibly provide some
assistance?  Thanks!

Jay
Strange. None of these errors happen when compiling on Mac OS X 10.5. I'll have to start testing builds on my linux box as well.

Grant _______________________________________________
Mailing list: https://launchpad.net/~drizzle-discuss
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~drizzle-discuss
More help   : https://help.launchpad.net/ListHelp

Reply via email to