Comment 10 for bug 1233113

Revision history for this message
Arjen Lentz (arjen-lentz) wrote : Re: [Bug 1233113] Re: V3 Segfault/hang on drop table after executing (disallowed) update graph operation

Hi Andrew

On 30/09/13 21:56, Andrew McDonnell wrote:
> Valgrind reports multiple errors around the path via ha_oqgraph::close()

This might be something to run by Sergei Golubchik or another MariaDB
whiz, if you reckon the server core might be doing the wrong thing.
Because our engine operates differently, it might catch bugs that other
engines don't.

> Invalid read of size 4
> ==28028== at 0x272EE579: oqgraph3::cursor_ptr::~cursor_ptr() (oqgraph_thunk.h:132)
> ==28028== by 0x272EE77A: open_query::edges_cursor::~edges_cursor() (oqgraph_thunk.h:68)
> ==28028== by 0x272EA0E6: open_query::oqgraph::release_cursor() (graphcore.cc:706)
> ==28028== by 0x272E7243: ha_oqgraph::external_lock(THD*, int) (ha_oqgraph.cc:1129)
> ==28028== by 0x6C4A11: handler::ha_external_lock(THD*, int) (handler.cc:5740)
> ==28028== by 0x7728A0: unlock_external(THD*, TABLE**, unsigned int) (lock.cc:671)
> ==28028== by 0x772A27: mysql_unlock_tables(THD*, st_mysql_lock*, bool) (lock.cc:382)
> ==28028== by 0x5519F7: close_thread_tables(THD*) (sql_base.cc:960)
> ==28028== by 0x5894E1: mysql_execute_command(THD*) (sql_parse.cc:5023)
> ==28028== by 0x58F83C: mysql_parse(THD*, char*, unsigned int, Parser_state*) (sql_parse.cc:6264)
> ==28028== by 0x590D45: dispatch_command(enum_server_command, THD*, char*, unsigned int) (sql_parse.cc:1277)
> ==28028== by 0x6435F3: do_handle_one_connection(THD*) (sql_connect.cc:1379)
> ==28028== Address 0x1c1f6370 is 0 bytes inside a block of size 80 free'd
> ==28028== at 0x4C23E0F: operator delete(void*) (vg_replace_malloc.c:387)
> ==28028== by 0x272EA0CC: open_query::oqgraph::release_cursor() (graphcore.cc:703)
> ==28028== by 0x272E7243: ha_oqgraph::external_lock(THD*, int) (ha_oqgraph.cc:1129)
> ==28028== by 0x6C4A11: handler::ha_external_lock(THD*, int) (handler.cc:5740)
> ==28028== by 0x7728A0: unlock_external(THD*, TABLE**, unsigned int) (lock.cc:671)
> ==28028== by 0x772A27: mysql_unlock_tables(THD*, st_mysql_lock*, bool) (lock.cc:382)
> ==28028== by 0x5519F7: close_thread_tables(THD*) (sql_base.cc:960)
> ==28028== by 0x5894E1: mysql_execute_command(THD*) (sql_parse.cc:5023)
> ==28028== by 0x58F83C: mysql_parse(THD*, char*, unsigned int, Parser_state*) (sql_parse.cc:6264)
> ==28028== by 0x590D45: dispatch_command(enum_server_command, THD*, char*, unsigned int) (sql_parse.cc:1277)
> ==28028== by 0x6435F3: do_handle_one_connection(THD*) (sql_connect.cc:1379)
> ==28028== by 0x64367F: handle_one_connection (sql_connect.cc:1293)
> ==28028==
> ==28028== Invalid write of size 4
> ==28028== at 0x272EE580: oqgraph3::cursor_ptr::~cursor_ptr() (oqgraph_thunk.h:132)
> ==28028== by 0x272EE77A: open_query::edges_cursor::~edges_cursor() (oqgraph_thunk.h:68)
> ==28028== by 0x272EA0E6: open_query::oqgraph::release_cursor() (graphcore.cc:706)
> ==28028== by 0x272E7243: ha_oqgraph::external_lock(THD*, int) (ha_oqgraph.cc:1129)
> ==28028== by 0x6C4A11: handler::ha_external_lock(THD*, int) (handler.cc:5740)
> ==28028== by 0x7728A0: unlock_external(THD*, TABLE**, unsigned int) (lock.cc:671)
> ==28028== by 0x772A27: mysql_unlock_tables(THD*, st_mysql_lock*, bool) (lock.cc:382)
> ==28028== by 0x5519F7: close_thread_tables(THD*) (sql_base.cc:960)
> ==28028== by 0x5894E1: mysql_execute_command(THD*) (sql_parse.cc:5023)
> ==28028== by 0x58F83C: mysql_parse(THD*, char*, unsigned int, Parser_state*) (sql_parse.cc:6264)
> ==28028== by 0x590D45: dispatch_command(enum_server_command, THD*, char*, unsigned int) (sql_parse.cc:1277)
> ==28028== by 0x6435F3: do_handle_one_connection(THD*) (sql_connect.cc:1379)
> ==28028== Address 0x1c1f6370 is 0 bytes inside a block of size 80 free'd
> ==28028== at 0x4C23E0F: operator delete(void*) (vg_replace_malloc.c:387)
> ==28028== by 0x272EA0CC: open_query::oqgraph::release_cursor() (graphcore.cc:703)
> ==28028== by 0x272E7243: ha_oqgraph::external_lock(THD*, int) (ha_oqgraph.cc:1129)
> ==28028== by 0x6C4A11: handler::ha_external_lock(THD*, int) (handler.cc:5740)
> ==28028== by 0x7728A0: unlock_external(THD*, TABLE**, unsigned int) (lock.cc:671)
> ==28028== by 0x772A27: mysql_unlock_tables(THD*, st_mysql_lock*, bool) (lock.cc:382)
> ==28028== by 0x5519F7: close_thread_tables(THD*) (sql_base.cc:960)
> ==28028== by 0x5894E1: mysql_execute_command(THD*) (sql_parse.cc:5023)
> ==28028== by 0x58F83C: mysql_parse(THD*, char*, unsigned int, Parser_state*) (sql_parse.cc:6264)
> ==28028== by 0x590D45: dispatch_command(enum_server_command, THD*, char*, unsigned int) (sql_parse.cc:1277)
> ==28028== by 0x6435F3: do_handle_one_connection(THD*) (sql_connect.cc:1379)
> ==28028== by 0x64367F: handle_one_connection (sql_connect.cc:1293)
>

--
Arjen Lentz, Exec.Director @ Open Query (http://openquery.com)
Australian peace of mind for your MySQL/MariaDB infrastructure.

Follow us at http://openquery.com/blog/ & http://twitter.com/openquery