Bug #95827 Assert ion `field_type() == MYSQL_TYPE_GEOMETRY' failed
Submitted: 16 Jun 2019 19:10 Modified: 12 Jul 2019 16:07
Reporter: Ramesh Sivaraman Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: GIS Severity:S6 (Debug Builds)
Version:5.7.26 OS:Any
Assigned to: CPU Architecture:Any

[16 Jun 2019 19:10] Ramesh Sivaraman
Description:
GDB Info

#0  __pthread_kill (threadid=<optimized out>, signo=6) at ../sysdeps/unix/sysv/linux/pthread_kill.c:62
62      ../sysdeps/unix/sysv/linux/pthread_kill.c: No such file or directory.
[Current thread is 1 (Thread 0x7f39d0e10700 (LWP 11375))]
(gdb) bt
+bt
#0  __pthread_kill (threadid=<optimized out>, signo=6) at ../sysdeps/unix/sysv/linux/pthread_kill.c:62
#1  0x0000000001983293 in my_write_core (sig=6) at /qa/pxc/mysql-server_dbg/mysys/stacktrace.c:249
#2  0x0000000000f15815 in handle_fatal_signal (sig=6) at /qa/pxc/mysql-server_dbg/sql/signal_handler.cc:220
#3  <signal handler called>
#4  0x00007f39ce8c3428 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:54
#5  0x00007f39ce8c502a in __GI_abort () at abort.c:89
#6  0x00007f39ce8bbbd7 in __assert_fail_base (fmt=<optimized out>, assertion=assertion@entry=0x1f485d8 "field_type() == MYSQL_TYPE_GEOMETRY", file=file@entry=0x1f48558 "/qa/pxc/mysql-server_dbg/sql/item.h", line=line@entry=2966, function=function@entry=0x1f4d1e0 <Item_field::get_geometry_type() const::__PRETTY_FUNCTION__> "virtual Field::geometry_type Item_field::get_geometry_type() const") at assert.c:92
#7  0x00007f39ce8bbc82 in __GI___assert_fail (assertion=0x1f485d8 "field_type() == MYSQL_TYPE_GEOMETRY", file=0x1f48558 "/qa/pxc/mysql-server_dbg/sql/item.h", line=2966, function=0x1f4d1e0 <Item_field::get_geometry_type() const::__PRETTY_FUNCTION__> "virtual Field::geometry_type Item_field::get_geometry_type() const") at assert.c:101
#8  0x0000000000fd4a53 in Item_field::get_geometry_type (this=0x7f399287bc68) at /qa/pxc/mysql-server_dbg/sql/item.h:2966
#9  0x0000000000fd17ad in Item_type_holder::join_types (this=0x7f399287b9e8, thd=0x7f3992819000, item=0x7f399287bc68) at /qa/pxc/mysql-server_dbg/sql/item.cc:10590
#10 0x00000000016d2873 in st_select_lex_unit::prepare (this=0x7f39928273b8, thd_arg=0x7f3992819000, sel_result=0x7f399287b808, added_options=268435456, removed_options=0) at /qa/pxc/mysql-server_dbg/sql/sql_union.cc:579
#11 0x000000000166aebb in handle_query (thd=0x7f3992819000, lex=0x7f399281b320, result=0x7f399287b808, added_options=0, removed_options=0) at /qa/pxc/mysql-server_dbg/sql/sql_select.cc:139
#12 0x000000000161b267 in execute_sqlcom_select (thd=0x7f3992819000, all_tables=0x7f399287b280) at /qa/pxc/mysql-server_dbg/sql/sql_parse.cc:5144
#13 0x0000000001614452 in mysql_execute_command (thd=0x7f3992819000, first_level=true) at /qa/pxc/mysql-server_dbg/sql/sql_parse.cc:2816
#14 0x000000000161c1e6 in mysql_parse (thd=0x7f3992819000, parser_state=0x7f39d0e0f510) at /qa/pxc/mysql-server_dbg/sql/sql_parse.cc:5570
#15 0x0000000001611151 in dispatch_command (thd=0x7f3992819000, com_data=0x7f39d0e0fdc0, command=COM_QUERY) at /qa/pxc/mysql-server_dbg/sql/sql_parse.cc:1484
#16 0x000000000160ffe0 in do_command (thd=0x7f3992819000) at /qa/pxc/mysql-server_dbg/sql/sql_parse.cc:1025
#17 0x0000000001753b05 in handle_connection (arg=0x7f39a5fc6660) at /qa/pxc/mysql-server_dbg/sql/conn_handler/connection_handler_per_thread.cc:306
#18 0x00000000019b2b06 in pfs_spawn_thread (arg=0x7f39b73bde20) at /qa/pxc/mysql-server_dbg/storage/perfschema/pfs.cc:2190
#19 0x00007f39cf5076ba in start_thread (arg=0x7f39d0e10700) at pthread_create.c:333
#20 0x00007f39ce99541d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

How to repeat:
rm -Rf /dev/shm/1560668449
mkdir -p /dev/shm/1560668449/tmp

/qa/pxc/MS160619-mysql-5.7.26-linux-x86_64-debug/bin/mysqld --no-defaults --initialize-insecure --basedir=/qa/pxc/MS160619-mysql-5.7.26-linux-x86_64-debug --datadir=/dev/shm/1560668449/data

/qa/pxc/MS160619-mysql-5.7.26-linux-x86_64-debug/bin/mysqld --no-defaults --basedir=/qa/pxc/MS160619-mysql-5.7.26-linux-x86_64-debug --datadir=/dev/shm/1560668449/data --tmpdir=/dev/shm/1560668449/tmp --port=33514 --pid-file=/dev/shm/1560668449/pid.pid --core-file --socket=/dev/shm/1560668449/socket.sock --log-error=/dev/shm/1560668449/error.log.out &

SQL 

SELECT ST_GEOMFROMTEXT('POINT(0)') UNION SELECT * FROM (SELECT NULL) AS a;
[17 Jun 2019 5:13] MySQL Verification Team
Hello Ramesh,

Thank you for the report.
Observed that 5.7.26 debug build is affected.

regards,
Umesh
[12 Jul 2019 16:07] Paul DuBois
Posted by developer:
 
Fixed in 5.7.28, 8.0.18.

For debug builds, an assertion could be raised during UNION queries
when computing the combined data type of a GEOMETRY column and SELECT
* FROM (SELECT NULL).