Details
- 
    
Bug
 - 
    Status: Closed (View Workflow)
 - 
    
Critical
 - 
    Resolution: Duplicate
 - 
    10.1.15
 - 
    CentOS Linux release 7.2.1511 (Core)
mysql Ver 15.1 Distrib 10.1.15-MariaDB, for Linux (x86_64) using readline 5.1
cPanel version 11.56.0.25 
Description
For MariaDB version 10.1.15, running the following query against a table with duplicate indexes instantly crashes MariaDB:
					select distinct example_row from table_crash where example_row in ('a','b');
			 | 
		
Here is the schema for table_crash:
					CREATE TABLE `table_crash` (
			 | 
		
					  `example_row` varchar(24),
			 | 
		
					  KEY `index1` (`example_row`),
			 | 
		
					  KEY `index2` (`example_row`)
			 | 
		
					) ENGINE=InnoDB DEFAULT CHARSET=utf8;
			 | 
		
The same query, run against the same table (but without the duplicate index) does not crash the server:
					CREATE TABLE `table_no_crash` (
			 | 
		
					  `example_row` varchar(24),
			 | 
		
					  KEY `index1` (`example_row`)
			 | 
		
					) ENGINE=InnoDB DEFAULT CHARSET=utf8;
			 | 
		
The same query, run against the first table schema (except this time, using MyISAM) does not crash the server:
					CREATE TABLE `table_crash` (
			 | 
		
					  `example_row` varchar(24),
			 | 
		
					  KEY `index1` (`example_row`),
			 | 
		
					  KEY `index2` (`example_row`)
			 | 
		
					) ENGINE=MyISAM DEFAULT CHARSET=utf8;
			 | 
		
					[root@node4 ~]# mysql mariadb_crash_poc
			 | 
		
					Welcome to the MariaDB monitor.  Commands end with ; or \g.
			 | 
		
					Your MariaDB connection id is 10
			 | 
		
					Server version: 10.1.15-MariaDB MariaDB Server
			 | 
		
| 
					 | 
		
					Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.
			 | 
		
| 
					 | 
		
					Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
			 | 
		
| 
					 | 
		
					MariaDB [mariadb_crash_poc]> show tables;
			 | 
		
					Empty set (0.00 sec)
			 | 
		
| 
					 | 
		
					MariaDB [mariadb_crash_poc]> CREATE TABLE `table_crash` (
			 | 
		
					    ->   `example_row` varchar(24),
			 | 
		
					    ->   KEY `index1` (`example_row`),
			 | 
		
					    ->   KEY `index2` (`example_row`)
			 | 
		
					    -> ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
			 | 
		
					Query OK, 0 rows affected, 1 warning (0.01 sec)
			 | 
		
| 
					 | 
		
					MariaDB [mariadb_crash_poc]> CREATE TABLE `table_no_crash` (
			 | 
		
					    ->   `example_row` varchar(24),
			 | 
		
					    ->   KEY `index1` (`example_row`)
			 | 
		
					    -> ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
			 | 
		
					Query OK, 0 rows affected (0.01 sec)
			 | 
		
| 
					 | 
		
					MariaDB [mariadb_crash_poc]> select distinct example_row from table_crash where example_row in ('a','b');
			 | 
		
					ERROR 2013 (HY000): Lost connection to MySQL server during query
			 | 
		
					MariaDB [mariadb_crash_poc]> select version();
			 | 
		
					ERROR 2006 (HY000): MySQL server has gone away
			 | 
		
					No connection. Trying to reconnect...
			 | 
		
					ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (111 "Connection refused")
			 | 
		
					ERROR: Can't connect to the server
			 | 
		
| 
					 | 
		
					unknown [mariadb_crash_poc]> \! service mysql start
			 | 
		
					Starting mysql (via systemctl):                            [  OK  ]
			 | 
		
					unknown [mariadb_crash_poc]> select distinct example_row from table_no_crash where example_row in ('a','b');
			 | 
		
					No connection. Trying to reconnect...
			 | 
		
					Connection id:    2
			 | 
		
					Current database: mariadb_crash_poc
			 | 
		
| 
					 | 
		
					Empty set (0.00 sec)
			 | 
		
| 
					 | 
		
					MariaDB [mariadb_crash_poc]> select distinct example_row from table_no_crash where example_row in ('a','b');
			 | 
		
					Empty set (0.00 sec)
			 | 
		
When it crashes, it seems to exit with exit code 1, logging absolutely nothing to the mysqld log. I have tested this many times and it is consistently reproducable each time without exception.
I have tested this against 10.1.14 and it does not crash MySQL.
Excerpt from mysqlbug:
					>Release:	mysql-10.1.15 (MariaDB Server)
			 | 
		
					>Server: /usr/bin/mysqladmin  Ver 9.1 Distrib 10.1.15-MariaDB, for Linux on x86_64
			 | 
		
					Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.
			 | 
		
| 
					 | 
		
					Server version		10.1.15-MariaDB
			 | 
		
					Protocol version	10
			 | 
		
					Connection		Localhost via UNIX socket
			 | 
		
					UNIX socket		/var/lib/mysql/mysql.sock
			 | 
		
					Uptime:			4 min 12 sec
			 | 
		
| 
					 | 
		
					Threads: 2  Questions: 15  Slow queries: 0  Opens: 21  Flush tables: 1  Open tables: 14  Queries per second avg: 0.059
			 | 
		
					>C compiler:    cc (GCC) 4.8.2 20140120 (Red Hat 4.8.2-16)
			 | 
		
| 
					 | 
		
					>C++ compiler:  c++ (GCC) 4.8.2 20140120 (Red Hat 4.8.2-16)
			 | 
		
| 
					 | 
		
					>Environment:
			 | 
		
						<machine, os, target, libraries (multiple lines)>
			 | 
		
					System: Linux node4.sudomemo.net 3.10.0-327.10.1.el7.x86_64 #1 SMP Tue Feb 16 17:03:50 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
			 | 
		
					Architecture: x86_64
			 | 
		
| 
					 | 
		
					Some paths:  /usr/bin/perl /usr/local/bin/make /usr/bin/gmake /usr/bin/gcc /usr/bin/cc
			 | 
		
					GCC: Using built-in specs.
			 | 
		
					COLLECT_GCC=/usr/bin/gcc
			 | 
		
					COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/lto-wrapper
			 | 
		
					Target: x86_64-redhat-linux
			 | 
		
					Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
			 | 
		
					Thread model: posix
			 | 
		
					gcc version 4.8.5 20150623 (Red Hat 4.8.5-4) (GCC) 
			 | 
		
					Compilation info (call): CC='/usr/bin/cc'  CFLAGS=''  CXX='/usr/bin/c++'  CXXFLAGS=''  LDFLAGS=''  ASFLAGS=''
			 | 
		
					Compilation info (used): CC='/usr/bin/cc'  CFLAGS=''  CXX='/usr/bin/c++'  CXXFLAGS=''  LDFLAGS=''  ASFLAGS=''
			 | 
		
| 
					 | 
		
| 
					 | 
		
					Perl: This is perl 5, version 16, subversion 3 (v5.16.3) built for x86_64-linux-thread-multi
			 | 
		
Attachments
Issue Links
- is duplicated by
 - 
                    
MDEV-10324 Server crash in get_sel_arg_for_keypart or Assertion `n < size()' failed in Mem_root_array
-         
 - Closed
 
 -