[MDEV-12705] 10.1.18-MariaDB-1~jessie - mysqld got signal 11 Created: 2017-05-05  Updated: 2018-07-31  Resolved: 2018-07-31

Status: Closed
Project: MariaDB Server
Component/s: GIS, Server
Affects Version/s: 10.1.18, 10.1, 10.2
Fix Version/s: 10.1.32

Type: Bug Priority: Major
Reporter: dgit Assignee: Alexey Botchkov
Resolution: Fixed Votes: 0
Labels: None
Environment:

Debian GNU/Linux 8.2 (jessie)
32GB Ram - CPU 16 Core - SSD 1TB


Attachments: File mariadb.err     File mariadb.err.0    
Sprint: 10.2.10

 Description   

170505 16:17:38 [ERROR] mysqld got signal 11 ;
This could be because you hit a bug. It is also possible that this binary
or one of the libraries it was linked against is corrupt, improperly built,
or misconfigured. This error can also be caused by malfunctioning hardware.
 
To report this bug, see https://mariadb.com/kb/en/reporting-bugs
 
We will try our best to scrape up some info that will hopefully help
diagnose the problem, but since we have already crashed, 
something is definitely wrong and this may fail.
 
Server version: 10.1.18-MariaDB-1~jessie
key_buffer_size=8589934592
read_buffer_size=2097152
max_used_connections=1419
max_threads=5002
thread_count=1023
It is possible that mysqld could use up to 
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 28979515 K  bytes of memory
Hope that's ok; if not, decrease some variables in the equation.
 
Thread pointer: 0x0x7f636b4ec008
Attempting backtrace. You can use the following information to find out
where mysqld died. If you see no messages after this, something went
terribly wrong...
stack_bottom = 0x7f6299eef1f8 thread_stack 0x48400
*** buffer overflow detected ***: /usr/sbin/mysqld terminated



 Comments   
Comment by Elena Stepanova [ 2017-05-12 ]

From the attached log:

*** buffer overflow detected ***: /usr/sbin/mysqld terminated
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x731ff)[0x7f65cbbef1ff]
/lib/x86_64-linux-gnu/libc.so.6(__fortify_fail+0x37)[0x7f65cbc724c7]
/lib/x86_64-linux-gnu/libc.so.6(+0xf46e0)[0x7f65cbc706e0]
/lib/x86_64-linux-gnu/libc.so.6(+0xf6437)[0x7f65cbc72437]
/usr/sbin/mysqld(my_addr_resolve+0x48)[0x7f65ce96acd8]
/usr/sbin/mysqld(my_print_stacktrace+0x1d2)[0x7f65ce957462]
/usr/sbin/mysqld(handle_fatal_signal+0x2d5)[0x7f65ce493785]
/lib/x86_64-linux-gnu/libpthread.so.0(+0xf8d0)[0x7f65cdabd8d0]
/usr/sbin/mysqld(_ZN10Gcalc_heap14new_point_infoEddj+0x1b)[0x7f65ce5d347b]
/usr/sbin/mysqld(_ZN23Gcalc_shape_transporter13int_add_pointEjdd+0x1f)[0x7f65ce5d372f]
/usr/sbin/mysqld(_ZNK11Gis_polygon12store_shapesEP23Gcalc_shape_transporter+0x240)[0x7f65ce59d0e0]
/usr/sbin/mysqld(_ZNK23Gis_geometry_collection12store_shapesEP23Gcalc_shape_transporter+0xaa)[0x7f65ce59f14a]
/usr/sbin/mysqld(_ZN29Item_func_spatial_precise_rel7val_intEv+0x5ec)[0x7f65ce4ffc8c]
/usr/sbin/mysqld(_ZN4Item13save_in_fieldEP5Fieldb+0x15c)[0x7f65ce4a2c7c]
/usr/sbin/mysqld(_Z12sp_eval_exprP3THDP5FieldPP4Item+0x72)[0x7f65ce593292]
/usr/sbin/mysqld(_ZN16sp_instr_freturn9exec_coreEP3THDPj+0x49)[0x7f65ce591009]
/usr/sbin/mysqld(_ZN13sp_lex_keeper23reset_lex_and_exec_coreEP3THDPjbP8sp_instr+0x2fa)[0x7f65ce59840a]
/usr/sbin/mysqld(_ZN7sp_head7executeEP3THDb+0x76e)[0x7f65ce5945ee]
/usr/sbin/mysqld(_ZN7sp_head16execute_functionEP3THDPP4ItemjP5Field+0x54c)[0x7f65ce5951cc]
/usr/sbin/mysqld(_ZN12Item_func_sp12execute_implEP3THD+0x109)[0x7f65ce4f7959]
/usr/sbin/mysqld(_ZN12Item_func_sp7executeEv+0x2c)[0x7f65ce4f7a3c]
/usr/sbin/mysqld(_ZN12Item_func_sp7val_intEv+0x11)[0x7f65ce4fbba1]
/usr/sbin/mysqld(_ZN22Item_func_set_user_var5checkEb+0xbb)[0x7f65ce4f590b]
/usr/sbin/mysqld(_ZN12set_var_user5checkEP3THD+0x2c)[0x7f65ce28824c]
/usr/sbin/mysqld(_Z17sql_set_variablesP3THDP4ListI12set_var_baseEb+0x39)[0x7f65ce28a149]
/usr/sbin/mysqld(_Z21mysql_execute_commandP3THD+0x65d4)[0x7f65ce30db14]
/usr/sbin/mysqld(_Z11mysql_parseP3THDPcjP12Parser_state+0x285)[0x7f65ce3108b5]
/usr/sbin/mysqld(_Z16dispatch_command19enum_server_commandP3THDPcj+0x1c89)[0x7f65ce3133e9]
/usr/sbin/mysqld(_Z10do_commandP3THD+0x16e)[0x7f65ce313b2e]
/usr/sbin/mysqld(_Z24do_handle_one_connectionP3THD+0x182)[0x7f65ce3de022]
/usr/sbin/mysqld(handle_one_connection+0x40)[0x7f65ce3de1e0]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x80a4)[0x7f65cdab60a4]
/lib/x86_64-linux-gnu/libc.so.6(clone+0x6d)[0x7f65cbc6204d]
======= Memory map: ========
7f612f3fd000-7f612f3fe000 ---p 00000000 00:00 0 
...

Comment by Elena Stepanova [ 2017-05-12 ]

Judging by the error log, you have high concurrency on the server, but still – do you have any guess at all which query was executed at the time of the crash? Apparently it involves a function and geometry.

Does it keep happening, or was it a one-time event?

Comment by dgit [ 2017-05-19 ]

yes we use geometry functions but they are so many running we can't tell which was the one that make maria crash.
today crash occured for the second time
message was: (see attached log)
mariadb.err

Comment by dgit [ 2017-05-19 ]

how can I get the query that caused the serve to crash ?
Any suggestion will be appreciated.
Thank you in advance

Comment by Elena Stepanova [ 2017-05-22 ]

Normally the server is supposed to print the problematic query in the error log, but with buffer overflow crash reports are not reliable. Still, please check, maybe the other occurrence was "luckier" this way.

In a different situation I would have suggested enabling the general log for a while (until the next crash). However, in your case, when there are over a thousand of open connections at a time, and we don't even get the crashing thread ID in the error log, the general log will be useless. My hope was that your server only runs a few types of queries most of the time (which happens often enough in busy environments), and you'd be able to recognize it by general attributes – function, geometry, collection, polygon, etc. I understand that it's impossible if you have many different queries.

Comment by Elena Stepanova [ 2017-06-20 ]

Any luck on finding the query in the error log?

Comment by dgit [ 2017-06-21 ]

No, We did not have any luck. We suspect it might be the GeomFromText function on hi concurrent insert, in table with geometry field passing as argument POINT(lat ,lng). But not sure.

Comment by Elena Stepanova [ 2017-07-21 ]

Are you using ST_RELATE() function? I've got some buffer overrun with it, wondering if it could be related.

SELECT ST_RELATE( 
    ST_DIFFERENCE( 
        GEOMETRYFROMTEXT(' 
            MULTILINESTRING( 
                ( 12841 36140, 8005 31007, 26555 31075, 52765 41191, 28978 6548, 45720 32057, 53345 3221 ), 
                ( 8304 59107, 25233 31592, 40502 25303, 8205 42940 ), 
                ( 7829 7305, 58841 56759, 64115 8512, 37562 54145, 2210 14701 ), 
                ( 20379 2805, 40807 27770, 28147 14883, 26439 29383, 55663 5086 ), 
                ( 35944 64702, 14433 23728, 49317 26241, 790 16941 ) 
            ) 
        '),
        GEOMETRYFROMTEXT('POINT(46061 13545)') 
    ), 
    GEOMETRYFROMTEXT('POINT(4599 60359)'), 
    'F*FFFF**F' 
);

Comment by Elena Stepanova [ 2017-08-29 ]

Since we don't know enough about the initial problem, let's at least fix the test case above in scope of this bug report, maybe by luck it will also fix the reported failure.

SELECT ST_RELATE( 
    ST_DIFFERENCE( 
        GEOMETRYFROMTEXT(' 
            MULTILINESTRING( 
                ( 12841 36140, 8005 31007, 26555 31075, 52765 41191, 28978 6548, 45720 32057, 53345 3221 ), 
                ( 8304 59107, 25233 31592, 40502 25303, 8205 42940 ), 
                ( 7829 7305, 58841 56759, 64115 8512, 37562 54145, 2210 14701 ), 
                ( 20379 2805, 40807 27770, 28147 14883, 26439 29383, 55663 5086 ), 
                ( 35944 64702, 14433 23728, 49317 26241, 790 16941 ) 
            ) 
        '),
        GEOMETRYFROMTEXT('POINT(46061 13545)') 
    ), 
    GEOMETRYFROMTEXT('POINT(4599 60359)'), 
    'F*FFFF**F' 
);

10.1 debug 01209de7637a7206c18788e08919b5ccf0b3d700

mysqltest: At line 1: query 'SELECT ST_RELATE( 
ST_DIFFERENCE( 
GEOMETRYFROMTEXT(' 
            MULTILINESTRING( 
                ( 12841 36140, 8005 31007, 26555 31075, 52765 41191, 28978 6548, 45720 32057, 53345 3221 ), 
                ( 8304 59107, 25233 31592, 40502 25303, 8205 42940 ), 
                ( 7829 7305, 58841 56759, 64115 8512, 37562 54145, 2210 14701 ), 
                ( 20379 2805, 40807 27770, 28147 14883, 26439 29383, 55663 5086 ), 
                ( 35944 64702, 14433 23728, 49317 26241, 790 16941 ) 
            ) 
        '),
GEOMETRYFROMTEXT('POINT(46061 13545)') 
), 
GEOMETRYFROMTEXT('POINT(4599 60359)'), 
'F*FFFF**F' 
)' failed: 5: Out of memory (Needed 1024 bytes)

10.1 debug 01209de7637a7206c18788e08919b5ccf0b3d700

Error: Reallocating overrun buffer  0x55e501f16bbe, 0x55e501f04329, 0x55e50171e181, mysys/safemalloc.c:176, 0x55e50171f757, 0x55e501a4fdf2, 0x55e501a4fd68, 0x55e50192dfe8
Allocated at 0x55e50171e1c5, 0x55e5015aedd0, 0x55e50171f757, 0x55e501a4fdf2, 0x55e50192e130, 0x55e5018cf033, sql/sql_string.h:331, sql/sql_string.cc:699
Error: Reallocating overrun buffer  mysys/safemalloc.c:176, mysys/my_malloc.c:165, sql/sql_string.cc:94, sql/sql_string.h:331, sql/sql_string.h:485, sql/gcalc_tools.cc:119, sql/item_geofunc.cc:1262, sql/item.cc:6569
Allocated at sql/sql_string.cc:100, sql/sql_string.h:331, sql/sql_string.cc:699, sql/gcalc_tools.cc:114, sql/item_geofunc.cc:1244, sql/item.cc:6569, sql/protocol.cc:914, sql/sql_class.cc:2837
Error: Freeing overrun buffer  mysys/safemalloc.c:191, mysys/my_malloc.c:219, 0x55e5015aed7f, 0x55e5015aecee, 0x55e501934a92, 0x55e501935f88, sql/sql_string.h:317, sql/item_geofunc.h:329
Allocated at sql/sql_string.cc:100, sql/sql_string.h:331, sql/sql_string.cc:699, sql/gcalc_tools.cc:114, sql/item_geofunc.cc:1244, sql/item.cc:6569, sql/protocol.cc:914, sql/sql_class.cc:2837

10.1 valgrind 01209de7637a7206c18788e08919b5ccf0b3d700

==32512== Invalid write of size 4
==32512==    at 0x8ADC5F: String::q_append(unsigned int) (sql_string.h:500)
==32512==    by 0x9CFBB5: Gcalc_function::add_operation(unsigned int, unsigned int) (gcalc_tools.cc:50)
==32512==    by 0x8A8216: setup_relate_func(Geometry*, Geometry*, Gcalc_operation_transporter*, Gcalc_function*, char const*) (item_geofunc.cc:1197)
==32512==    by 0x8A85A8: Item_func_spatial_relate::val_int() (item_geofunc.cc:1256)
==32512==    by 0x848710: Item::send(Protocol*, String*) (item.cc:6569)
==32512==    by 0x522485: Protocol::send_result_set_row(List<Item>*) (protocol.cc:914)
==32512==    by 0x59B9E5: select_send::send_data(List<Item>&) (sql_class.cc:2837)
==32512==    by 0x61E910: JOIN::exec_inner() (sql_select.cc:2591)
==32512==    by 0x61E382: JOIN::exec() (sql_select.cc:2512)
==32512==    by 0x621A06: mysql_select(THD*, Item***, TABLE_LIST*, unsigned int, List<Item>&, Item*, unsigned int, st_order*, st_order*, Item*, st_order*, unsigned long long, select_result*, st_select_lex_unit*, st_select_lex*) (sql_select.cc:3449)
==32512==    by 0x617229: handle_select(THD*, LEX*, select_result*, unsigned long) (sql_select.cc:384)
==32512==    by 0x5E6584: execute_sqlcom_select(THD*, TABLE_LIST*) (sql_parse.cc:5912)
==32512==    by 0x5DC79E: mysql_execute_command(THD*) (sql_parse.cc:2982)
==32512==    by 0x5E9C92: mysql_parse(THD*, char*, unsigned int, Parser_state*) (sql_parse.cc:7333)
==32512==    by 0x5D8895: dispatch_command(enum_server_command, THD*, char*, unsigned int) (sql_parse.cc:1484)
==32512==    by 0x5D7632: do_command(THD*) (sql_parse.cc:1106)
==32512==  Address 0xddee1d8 is 0 bytes after a block of size 520 alloc'd
==32512==    at 0x4C2BBAF: malloc (vg_replace_malloc.c:299)
==32512==    by 0xED4FAB: my_malloc (my_malloc.c:101)
==32512==    by 0x68C2C8: String::realloc_raw(unsigned int) (sql_string.cc:100)
==32512==    by 0x518047: String::realloc(unsigned int) (sql_string.h:331)
==32512==    by 0x68D85A: String::reserve(unsigned int, unsigned int) (sql_string.cc:699)
==32512==    by 0x9CFD7B: Gcalc_function::reserve_op_buffer(unsigned int) (gcalc_tools.cc:113)
==32512==    by 0x8A83BD: Item_func_spatial_relate::val_int() (item_geofunc.cc:1245)
==32512==    by 0x848710: Item::send(Protocol*, String*) (item.cc:6569)
==32512==    by 0x522485: Protocol::send_result_set_row(List<Item>*) (protocol.cc:914)
==32512==    by 0x59B9E5: select_send::send_data(List<Item>&) (sql_class.cc:2837)
==32512==    by 0x61E910: JOIN::exec_inner() (sql_select.cc:2591)
==32512==    by 0x61E382: JOIN::exec() (sql_select.cc:2512)
==32512==    by 0x621A06: mysql_select(THD*, Item***, TABLE_LIST*, unsigned int, List<Item>&, Item*, unsigned int, st_order*, st_order*, Item*, st_order*, unsigned long long, select_result*, st_select_lex_unit*, st_select_lex*) (sql_select.cc:3449)
==32512==    by 0x617229: handle_select(THD*, LEX*, select_result*, unsigned long) (sql_select.cc:384)
==32512==    by 0x5E6584: execute_sqlcom_select(THD*, TABLE_LIST*) (sql_parse.cc:5912)
==32512==    by 0x5DC79E: mysql_execute_command(THD*) (sql_parse.cc:2982)
==32512== Conditional jump or move depends on uninitialised value(s)
==32512==    at 0x9CFE64: Gcalc_function::count_internal(char const*, unsigned int, char const**) (gcalc_tools.cc:132)
==32512==    by 0x9D0046: Gcalc_function::count_internal(char const*, unsigned int, char const**) (gcalc_tools.cc:183)
==32512==    by 0x9D0046: Gcalc_function::count_internal(char const*, unsigned int, char const**) (gcalc_tools.cc:183)
==32512==    by 0x8AE284: Gcalc_function::count() (gcalc_tools.h:124)
==32512==    by 0x9D0571: Gcalc_function::check_function(Gcalc_scan_iterator&) (gcalc_tools.cc:344)
==32512==    by 0x8A866F: Item_func_spatial_relate::val_int() (item_geofunc.cc:1263)
==32512==    by 0x848710: Item::send(Protocol*, String*) (item.cc:6569)
==32512==    by 0x522485: Protocol::send_result_set_row(List<Item>*) (protocol.cc:914)
==32512==    by 0x59B9E5: select_send::send_data(List<Item>&) (sql_class.cc:2837)
==32512==    by 0x61E910: JOIN::exec_inner() (sql_select.cc:2591)
==32512==    by 0x61E382: JOIN::exec() (sql_select.cc:2512)
==32512==    by 0x621A06: mysql_select(THD*, Item***, TABLE_LIST*, unsigned int, List<Item>&, Item*, unsigned int, st_order*, st_order*, Item*, st_order*, unsigned long long, select_result*, st_select_lex_unit*, st_select_lex*) (sql_select.cc:3449)
==32512==    by 0x617229: handle_select(THD*, LEX*, select_result*, unsigned long) (sql_select.cc:384)
==32512==    by 0x5E6584: execute_sqlcom_select(THD*, TABLE_LIST*) (sql_parse.cc:5912)
==32512==    by 0x5DC79E: mysql_execute_command(THD*) (sql_parse.cc:2982)
==32512==    by 0x5E9C92: mysql_parse(THD*, char*, unsigned int, Parser_state*) (sql_parse.cc:7333)
==32512== Conditional jump or move depends on uninitialised value(s)
==32512==    at 0x9CFEB5: Gcalc_function::count_internal(char const*, unsigned int, char const**) (gcalc_tools.cc:142)
==32512==    by 0x9D0046: Gcalc_function::count_internal(char const*, unsigned int, char const**) (gcalc_tools.cc:183)
==32512==    by 0x9D0046: Gcalc_function::count_internal(char const*, unsigned int, char const**) (gcalc_tools.cc:183)
==32512==    by 0x8AE284: Gcalc_function::count() (gcalc_tools.h:124)
==32512==    by 0x9D0571: Gcalc_function::check_function(Gcalc_scan_iterator&) (gcalc_tools.cc:344)
==32512==    by 0x8A866F: Item_func_spatial_relate::val_int() (item_geofunc.cc:1263)
==32512==    by 0x848710: Item::send(Protocol*, String*) (item.cc:6569)
==32512==    by 0x522485: Protocol::send_result_set_row(List<Item>*) (protocol.cc:914)
==32512==    by 0x59B9E5: select_send::send_data(List<Item>&) (sql_class.cc:2837)
==32512==    by 0x61E910: JOIN::exec_inner() (sql_select.cc:2591)
==32512==    by 0x61E382: JOIN::exec() (sql_select.cc:2512)
==32512==    by 0x621A06: mysql_select(THD*, Item***, TABLE_LIST*, unsigned int, List<Item>&, Item*, unsigned int, st_order*, st_order*, Item*, st_order*, unsigned long long, select_result*, st_select_lex_unit*, st_select_lex*) (sql_select.cc:3449)
==32512==    by 0x617229: handle_select(THD*, LEX*, select_result*, unsigned long) (sql_select.cc:384)
==32512==    by 0x5E6584: execute_sqlcom_select(THD*, TABLE_LIST*) (sql_parse.cc:5912)
==32512==    by 0x5DC79E: mysql_execute_command(THD*) (sql_parse.cc:2982)
==32512==    by 0x5E9C92: mysql_parse(THD*, char*, unsigned int, Parser_state*) (sql_parse.cc:7333)
==32512== Use of uninitialised value of size 8
==32512==    at 0x9CFED3: Gcalc_function::count_internal(char const*, unsigned int, char const**) (gcalc_tools.cc:145)
==32512==    by 0x9D0046: Gcalc_function::count_internal(char const*, unsigned int, char const**) (gcalc_tools.cc:183)
==32512==    by 0x9D0046: Gcalc_function::count_internal(char const*, unsigned int, char const**) (gcalc_tools.cc:183)
==32512==    by 0x8AE284: Gcalc_function::count() (gcalc_tools.h:124)
==32512==    by 0x9D0571: Gcalc_function::check_function(Gcalc_scan_iterator&) (gcalc_tools.cc:344)
==32512==    by 0x8A866F: Item_func_spatial_relate::val_int() (item_geofunc.cc:1263)
==32512==    by 0x848710: Item::send(Protocol*, String*) (item.cc:6569)
==32512==    by 0x522485: Protocol::send_result_set_row(List<Item>*) (protocol.cc:914)
==32512==    by 0x59B9E5: select_send::send_data(List<Item>&) (sql_class.cc:2837)
==32512==    by 0x61E910: JOIN::exec_inner() (sql_select.cc:2591)
==32512==    by 0x61E382: JOIN::exec() (sql_select.cc:2512)
==32512==    by 0x621A06: mysql_select(THD*, Item***, TABLE_LIST*, unsigned int, List<Item>&, Item*, unsigned int, st_order*, st_order*, Item*, st_order*, unsigned long long, select_result*, st_select_lex_unit*, st_select_lex*) (sql_select.cc:3449)
==32512==    by 0x617229: handle_select(THD*, LEX*, select_result*, unsigned long) (sql_select.cc:384)
==32512==    by 0x5E6584: execute_sqlcom_select(THD*, TABLE_LIST*) (sql_parse.cc:5912)
==32512==    by 0x5DC79E: mysql_execute_command(THD*) (sql_parse.cc:2982)
==32512==    by 0x5E9C92: mysql_parse(THD*, char*, unsigned int, Parser_state*) (sql_parse.cc:7333)
==32512== Use of uninitialised value of size 8
==32512==    at 0x9CFEE7: Gcalc_function::count_internal(char const*, unsigned int, char const**) (gcalc_tools.cc:145)
==32512==    by 0x9D0046: Gcalc_function::count_internal(char const*, unsigned int, char const**) (gcalc_tools.cc:183)
==32512==    by 0x9D0046: Gcalc_function::count_internal(char const*, unsigned int, char const**) (gcalc_tools.cc:183)
==32512==    by 0x8AE284: Gcalc_function::count() (gcalc_tools.h:124)
==32512==    by 0x9D0571: Gcalc_function::check_function(Gcalc_scan_iterator&) (gcalc_tools.cc:344)
==32512==    by 0x8A866F: Item_func_spatial_relate::val_int() (item_geofunc.cc:1263)
==32512==    by 0x848710: Item::send(Protocol*, String*) (item.cc:6569)
==32512==    by 0x522485: Protocol::send_result_set_row(List<Item>*) (protocol.cc:914)
==32512==    by 0x59B9E5: select_send::send_data(List<Item>&) (sql_class.cc:2837)
==32512==    by 0x61E910: JOIN::exec_inner() (sql_select.cc:2591)
==32512==    by 0x61E382: JOIN::exec() (sql_select.cc:2512)
==32512==    by 0x621A06: mysql_select(THD*, Item***, TABLE_LIST*, unsigned int, List<Item>&, Item*, unsigned int, st_order*, st_order*, Item*, st_order*, unsigned long long, select_result*, st_select_lex_unit*, st_select_lex*) (sql_select.cc:3449)
==32512==    by 0x617229: handle_select(THD*, LEX*, select_result*, unsigned long) (sql_select.cc:384)
==32512==    by 0x5E6584: execute_sqlcom_select(THD*, TABLE_LIST*) (sql_parse.cc:5912)
==32512==    by 0x5DC79E: mysql_execute_command(THD*) (sql_parse.cc:2982)
==32512==    by 0x5E9C92: mysql_parse(THD*, char*, unsigned int, Parser_state*) (sql_parse.cc:7333)
==32512== Conditional jump or move depends on uninitialised value(s)
==32512==    at 0x9D0179: Gcalc_function::count_internal(char const*, unsigned int, char const**) (gcalc_tools.cc:224)
==32512==    by 0x9D0046: Gcalc_function::count_internal(char const*, unsigned int, char const**) (gcalc_tools.cc:183)
==32512==    by 0x9D0046: Gcalc_function::count_internal(char const*, unsigned int, char const**) (gcalc_tools.cc:183)
==32512==    by 0x8AE284: Gcalc_function::count() (gcalc_tools.h:124)
==32512==    by 0x9D0571: Gcalc_function::check_function(Gcalc_scan_iterator&) (gcalc_tools.cc:344)
==32512==    by 0x8A866F: Item_func_spatial_relate::val_int() (item_geofunc.cc:1263)
==32512==    by 0x848710: Item::send(Protocol*, String*) (item.cc:6569)
==32512==    by 0x522485: Protocol::send_result_set_row(List<Item>*) (protocol.cc:914)
==32512==    by 0x59B9E5: select_send::send_data(List<Item>&) (sql_class.cc:2837)
==32512==    by 0x61E910: JOIN::exec_inner() (sql_select.cc:2591)
==32512==    by 0x61E382: JOIN::exec() (sql_select.cc:2512)
==32512==    by 0x621A06: mysql_select(THD*, Item***, TABLE_LIST*, unsigned int, List<Item>&, Item*, unsigned int, st_order*, st_order*, Item*, st_order*, unsigned long long, select_result*, st_select_lex_unit*, st_select_lex*) (sql_select.cc:3449)
==32512==    by 0x617229: handle_select(THD*, LEX*, select_result*, unsigned long) (sql_select.cc:384)
==32512==    by 0x5E6584: execute_sqlcom_select(THD*, TABLE_LIST*) (sql_parse.cc:5912)
==32512==    by 0x5DC79E: mysql_execute_command(THD*) (sql_parse.cc:2982)
==32512==    by 0x5E9C92: mysql_parse(THD*, char*, unsigned int, Parser_state*) (sql_parse.cc:7333)

Comment by Alexey Botchkov [ 2017-10-07 ]

Issue with the ST_RELATE found by Elena is fixed now
http://lists.askmonty.org/pipermail/commits/2017-October/011536.html

Though the initial problem is not related to this. I'd really like to be able to reproduce it somehow.
Is it possible to see the general log or install the audit plugin?

Comment by Elena Stepanova [ 2017-11-29 ]

infodgit, have you experienced the reported problem on any recent releases?

Comment by dgit [ 2018-03-21 ]

Sorry for the delay.
We patched with workaround validating the point before pass to geometry function.

Thanks

Comment by Alexey Botchkov [ 2018-06-11 ]

dgit, i'm interested to take a look at the patch.
Can you please send it?
Or just explain a bit how it validates the point?

Generated at Thu Feb 08 07:59:48 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.