Hi Mattias,
Mattias Jonsson, 09.09.2008 21:11:
...
> Here is a bt at the crash:
> Program received signal EXC_ARITHMETIC, Arithmetic exception.
> 0x91bc2466 in hash_search ()
> (gdb) bt
> #0 0x91bc2466 in hash_search ()
> #1 0x00ee40ee in get_share (...) at ha_example.cc:177
> #2 0x00ee4476 in ha_example::open (...) at ha_example.cc:294
> #3 0x00232241 in handler::ha_open (...) at handler.cc:2025
> #4 0x00167a77 in open_table_from_share (...) at table.cc:1858
> #5 0x0015a2a5 in open_unireg_entry (...) at sql_base.cc:3881
...
> #13 0x00115f1c in dispatch_command (...) at sql_parse.cc:1152
> #14 0x001171f8 in do_command (...) at sql_parse.cc:809
> #15 0x001026fd in handle_one_connection (... sql_connect.cc:1115
> #16 0x91b566f5 in _pthread_start ()
> #17 0x91b565b2 in thread_start ()
Looking at the source and then somewhat deeper at the stack backtrace, I
notice the following:
- get_share() calls hash_search() from mysys/.
- hash_search() from mysys/ has no arithmetic operations
- The stack frame of hash_search() does not show arguments, nor
a file name.
- MySQL's functions have addresses starting with 0x00.
- System library functions like _pthread_start() have addresses starting
with 0x91.
- hash_search() has an address starting with 0x91.
So I wonder if it is possible that on Mac a system library function
hash_search() exists and is linked into mysqld instead of the mysys
variant? OTOH that should crash much earlier. But what if hash_search()
did become part of example.so and overloaded the mysys variant on plugin
install?
Regards
Ingo
--
Ingo Strüwing, Database Group
Sun Microsystems GmbH, Sonnenallee 1, D-85551 Kirchheim-Heimstetten
Geschäftsführer: Thomas Schröder, Wolfgang Engels, Dr. Roland Bömer
Vorsitzender des Aufsichtsrates: Martin Häring HRB München 161028