[MDEV-9779] CONNECT buffer overflow with partition Created: 2016-03-23  Updated: 2016-03-25  Resolved: 2016-03-25

Status: Closed
Project: MariaDB Server
Component/s: Partitioning, Storage Engine - Connect
Affects Version/s: 10.1.12, 10.1
Fix Version/s: 10.0.25, 10.1.14

Type: Bug Priority: Critical
Reporter: Alex B Assignee: Olivier Bertrand
Resolution: Fixed Votes: 0
Labels: None
Environment:

Ubuntu 14.04.4 LTS inside lxc container, packages from mariadb repository.



 Description   

Hello,

While I was following this tutorial : https://mariadb.com/kb/en/mariadb/using-connect-partitioning-and-sharding/#sharding-with-table-partitioning , I encountered a buffer overflow in ha_connect.

Here the steps to reproduce :

MariaDB [(none)]> show plugins;
+-------------------------------+----------+--------------------+---------------+---------+
| Name                          | Status   | Type               | Library       | License |
+-------------------------------+----------+--------------------+---------------+---------+
| binlog                        | ACTIVE   | STORAGE ENGINE     | NULL          | GPL     |
| mysql_native_password         | ACTIVE   | AUTHENTICATION     | NULL          | GPL     |
| mysql_old_password            | ACTIVE   | AUTHENTICATION     | NULL          | GPL     |
| wsrep                         | ACTIVE   | STORAGE ENGINE     | NULL          | GPL     |
| MRG_MyISAM                    | ACTIVE   | STORAGE ENGINE     | NULL          | GPL     |
| MEMORY                        | ACTIVE   | STORAGE ENGINE     | NULL          | GPL     |
| CSV                           | ACTIVE   | STORAGE ENGINE     | NULL          | GPL     |
| MyISAM                        | ACTIVE   | STORAGE ENGINE     | NULL          | GPL     |
| CLIENT_STATISTICS             | ACTIVE   | INFORMATION SCHEMA | NULL          | GPL     |
| INDEX_STATISTICS              | ACTIVE   | INFORMATION SCHEMA | NULL          | GPL     |
| TABLE_STATISTICS              | ACTIVE   | INFORMATION SCHEMA | NULL          | GPL     |
| USER_STATISTICS               | ACTIVE   | INFORMATION SCHEMA | NULL          | GPL     |
| PERFORMANCE_SCHEMA            | ACTIVE   | STORAGE ENGINE     | NULL          | GPL     |
| Aria                          | ACTIVE   | STORAGE ENGINE     | NULL          | GPL     |
| InnoDB                        | ACTIVE   | STORAGE ENGINE     | NULL          | GPL     |
| XTRADB_READ_VIEW              | ACTIVE   | INFORMATION SCHEMA | NULL          | GPL     |
| XTRADB_INTERNAL_HASH_TABLES   | ACTIVE   | INFORMATION SCHEMA | NULL          | GPL     |
| XTRADB_RSEG                   | ACTIVE   | INFORMATION SCHEMA | NULL          | GPL     |
| INNODB_TRX                    | ACTIVE   | INFORMATION SCHEMA | NULL          | GPL     |
| INNODB_LOCKS                  | ACTIVE   | INFORMATION SCHEMA | NULL          | GPL     |
| INNODB_LOCK_WAITS             | ACTIVE   | INFORMATION SCHEMA | NULL          | GPL     |
| INNODB_CMP                    | ACTIVE   | INFORMATION SCHEMA | NULL          | GPL     |
| INNODB_CMP_RESET              | ACTIVE   | INFORMATION SCHEMA | NULL          | GPL     |
| INNODB_CMPMEM                 | ACTIVE   | INFORMATION SCHEMA | NULL          | GPL     |
| INNODB_CMPMEM_RESET           | ACTIVE   | INFORMATION SCHEMA | NULL          | GPL     |
| INNODB_CMP_PER_INDEX          | ACTIVE   | INFORMATION SCHEMA | NULL          | GPL     |
| INNODB_CMP_PER_INDEX_RESET    | ACTIVE   | INFORMATION SCHEMA | NULL          | GPL     |
| INNODB_BUFFER_PAGE            | ACTIVE   | INFORMATION SCHEMA | NULL          | GPL     |
| INNODB_BUFFER_PAGE_LRU        | ACTIVE   | INFORMATION SCHEMA | NULL          | GPL     |
| INNODB_BUFFER_POOL_STATS      | ACTIVE   | INFORMATION SCHEMA | NULL          | GPL     |
| INNODB_METRICS                | ACTIVE   | INFORMATION SCHEMA | NULL          | GPL     |
| INNODB_FT_DEFAULT_STOPWORD    | ACTIVE   | INFORMATION SCHEMA | NULL          | GPL     |
| INNODB_FT_DELETED             | ACTIVE   | INFORMATION SCHEMA | NULL          | GPL     |
| INNODB_FT_BEING_DELETED       | ACTIVE   | INFORMATION SCHEMA | NULL          | GPL     |
| INNODB_FT_CONFIG              | ACTIVE   | INFORMATION SCHEMA | NULL          | GPL     |
| INNODB_FT_INDEX_CACHE         | ACTIVE   | INFORMATION SCHEMA | NULL          | GPL     |
| INNODB_FT_INDEX_TABLE         | ACTIVE   | INFORMATION SCHEMA | NULL          | GPL     |
| INNODB_SYS_TABLES             | ACTIVE   | INFORMATION SCHEMA | NULL          | GPL     |
| INNODB_SYS_TABLESTATS         | ACTIVE   | INFORMATION SCHEMA | NULL          | GPL     |
| INNODB_SYS_INDEXES            | ACTIVE   | INFORMATION SCHEMA | NULL          | GPL     |
| INNODB_SYS_COLUMNS            | ACTIVE   | INFORMATION SCHEMA | NULL          | GPL     |
| INNODB_SYS_FIELDS             | ACTIVE   | INFORMATION SCHEMA | NULL          | GPL     |
| INNODB_SYS_FOREIGN            | ACTIVE   | INFORMATION SCHEMA | NULL          | GPL     |
| INNODB_SYS_FOREIGN_COLS       | ACTIVE   | INFORMATION SCHEMA | NULL          | GPL     |
| INNODB_SYS_TABLESPACES        | ACTIVE   | INFORMATION SCHEMA | NULL          | GPL     |
| INNODB_SYS_DATAFILES          | ACTIVE   | INFORMATION SCHEMA | NULL          | GPL     |
| INNODB_CHANGED_PAGES          | ACTIVE   | INFORMATION SCHEMA | NULL          | GPL     |
| INNODB_MUTEXES                | ACTIVE   | INFORMATION SCHEMA | NULL          | GPL     |
| INNODB_SYS_SEMAPHORE_WAITS    | ACTIVE   | INFORMATION SCHEMA | NULL          | GPL     |
| INNODB_TABLESPACES_ENCRYPTION | ACTIVE   | INFORMATION SCHEMA | NULL          | BSD     |
| INNODB_TABLESPACES_SCRUBBING  | ACTIVE   | INFORMATION SCHEMA | NULL          | BSD     |
| CHANGED_PAGE_BITMAPS          | ACTIVE   | INFORMATION SCHEMA | NULL          | GPL     |
| SEQUENCE                      | ACTIVE   | STORAGE ENGINE     | NULL          | GPL     |
| FEEDBACK                      | DISABLED | INFORMATION SCHEMA | NULL          | GPL     |
| partition                     | ACTIVE   | STORAGE ENGINE     | NULL          | GPL     |
| CONNECT                       | ACTIVE   | STORAGE ENGINE     | ha_connect.so | GPL     |
+-------------------------------+----------+--------------------+---------------+---------+
56 rows in set (0.00 sec)
 
MariaDB [(none)]> create database frites;
Query OK, 1 row affected (0.00 sec)
 
MariaDB [(none)]> use frites;
Database changed
 
MariaDB [frites]> create table test1 (id int key not null, msg varchar(32));
Query OK, 0 rows affected (0.43 sec)
 
MariaDB [frites]> create table test2 (id int key not null, msg varchar(32));
Query OK, 0 rows affected (0.33 sec)
 
 
MariaDB [frites]> create table test ( 
id int key not null, 
msg varchar(32)) 
engine=connect table_type=MYSQL 
option_list='connect=mysql://%s' 
partition by range columns(id) ( 
partition `root:passwd@127.0.0.1/frites/test1` values less than(1000),
partition `root:passwd@127.0.0.1/frites/test2` values less than(MAXVALUE));
 
Query OK, 0 rows affected, 2 warnings (0.05 sec)
 
MariaDB [frites]> show tables;
+------------------+
| Tables_in_frites |
+------------------+
| test             |
| test1            |
| test2            |
+------------------+
3 rows in set (0.00 sec)
 
MariaDB [frites]> select * from test1;
Empty set (0.01 sec)
 
MariaDB [frites]> select * from test2;
Empty set (0.00 sec)
 
MariaDB [frites]> select * from test;
*** buffer overflow detected ***: /usr/sbin/mysqld terminated
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x7338f)[0x7ff17809738f]
/lib/x86_64-linux-gnu/libc.so.6(__fortify_fail+0x5c)[0x7ff17812ec9c]
/lib/x86_64-linux-gnu/libc.so.6(+0x109b60)[0x7ff17812db60]
/usr/lib/mysql/plugin/ha_connect.so(_ZN10ha_connect4openEPKcij+0x304)[0x7ff172113624]
/usr/sbin/mysqld(_ZN7handler7ha_openEP5TABLEPKcij+0x33)[0x7ff17a4b1563]
/usr/sbin/mysqld(+0xa56a91)[0x7ff17a953a91]
/usr/sbin/mysqld(_ZN7handler7ha_openEP5TABLEPKcij+0x33)[0x7ff17a4b1563]
/usr/sbin/mysqld(_Z21open_table_from_shareP3THDP11TABLE_SHAREPKcjjjP5TABLEb+0xb2b)[0x7ff17a3d475b]
/usr/sbin/mysqld(_Z10open_tableP3THDP10TABLE_LISTP18Open_table_context+0xa0c)[0x7ff17a2e82ac]
/usr/sbin/mysqld(_Z11open_tablesP3THDRK14DDL_options_stPP10TABLE_LISTPjjP19Prelocking_strategy+0xfa0)[0x7ff17a2ec410]
/usr/sbin/mysqld(_Z20open_and_lock_tablesP3THDRK14DDL_options_stP10TABLE_LISTbjP19Prelocking_strategy+0x34)[0x7ff17a2ec774]
/usr/sbin/mysqld(+0x4282fd)[0x7ff17a3252fd]
/usr/sbin/mysqld(_Z21mysql_execute_commandP3THD+0x61e4)[0x7ff17a331854]
/usr/sbin/mysqld(_Z11mysql_parseP3THDPcjP12Parser_state+0x26d)[0x7ff17a334fed]
/usr/sbin/mysqld(_Z16dispatch_command19enum_server_commandP3THDPcj+0x2460)[0x7ff17a338330]
/usr/sbin/mysqld(_Z10do_commandP3THD+0x169)[0x7ff17a338ae9]
/usr/sbin/mysqld(_Z24do_handle_one_connectionP3THD+0x18a)[0x7ff17a3fc0fa]
/usr/sbin/mysqld(handle_one_connection+0x40)[0x7ff17a3fc2d0]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x8182)[0x7ff1789fb182]
/lib/x86_64-linux-gnu/libc.so.6(clone+0x6d)[0x7ff17811e47d]
======= Memory map: ========
7ff13b800000-7ff141000000 rw-p 00000000 00:00 0 
7ff1413f5000-7ff1413f6000 ---p 00000000 00:00 0 
7ff1413f6000-7ff141bf6000 rw-p 00000000 00:00 0                          [stack:6089]
7ff141bf6000-7ff141bf7000 ---p 00000000 00:00 0 
7ff141bf7000-7ff1423f7000 rw-p 00000000 00:00 0                          [stack:6088]
7ff1423f7000-7ff1423f8000 ---p 00000000 00:00 0 
7ff1423f8000-7ff142bf8000 rw-p 00000000 00:00 0                          [stack:6087]
7ff142bf8000-7ff142bf9000 ---p 00000000 00:00 0 
7ff142bf9000-7ff1433f9000 rw-p 00000000 00:00 0                          [stack:6086]
7ff1433f9000-7ff1433fa000 ---p 00000000 00:00 0 
7ff1433fa000-7ff143bfa000 rw-p 00000000 00:00 0                          [stack:6076]
7ff143bfa000-7ff143bfb000 ---p 00000000 00:00 0 
7ff143bfb000-7ff1443fb000 rw-p 00000000 00:00 0                          [stack:6074]
7ff1443fb000-7ff1443fc000 ---p 00000000 00:00 0 
7ff1443fc000-7ff144bfc000 rw-p 00000000 00:00 0                          [stack:6073]
7ff144bfc000-7ff144bfd000 ---p 00000000 00:00 0 
7ff144bfd000-7ff1453fd000 rw-p 00000000 00:00 0                          [stack:6072]
7ff1453fd000-7ff1453fe000 ---p 00000000 00:00 0 
7ff1453fe000-7ff145bfe000 rw-p 00000000 00:00 0                          [stack:6071]
7ff145bfe000-7ff145bff000 ---p 00000000 00:00 0 
7ff145bff000-7ff1463ff000 rw-p 00000000 00:00 0                          [stack:6070]
7ff1463ff000-7ff146400000 ---p 00000000 00:00 0 
7ff146400000-7ff147800000 rw-p 00000000 00:00 0                          [stack:6075]
7ff147bf6000-7ff147bf7000 ---p 00000000 00:00 0 
7ff147bf7000-7ff1483f7000 rw-p 00000000 00:00 0                          [stack:6068]
7ff1483f7000-7ff1483f8000 ---p 00000000 00:00 0 
7ff1483f8000-7ff148bf8000 rw-p 00000000 00:00 0                          [stack:6067]
7ff148bf8000-7ff148bf9000 ---p 00000000 00:00 0 
7ff148bf9000-7ff1493f9000 rw-p 00000000 00:00 0                          [stack:6066]
7ff1493f9000-7ff1493fa000 ---p 00000000 00:00 0 
7ff1493fa000-7ff149bfa000 rw-p 00000000 00:00 0                          [stack:6065]
7ff149bfa000-7ff149bfb000 ---p 00000000 00:00 0 
7ff149bfb000-7ff14a3fb000 rw-p 00000000 00:00 0                          [stack:6064]
7ff14a3fb000-7ff14a3fc000 ---p 00000000 00:00 0 
7ff14a3fc000-7ff14abfc000 rw-p 00000000 00:00 0                          [stack:6063]
7ff14abfc000-7ff14abfd000 ---p 00000000 00:00 0 
7ff14abfd000-7ff14b3fd000 rw-p 00000000 00:00 0                          [stack:6062]
7ff14b3fd000-7ff14b3fe000 ---p 00000000 00:00 0 
7ff14b3fe000-7ff14bbfe000 rw-p 00000000 00:00 0                          [stack:6061]
7ff14bbfe000-7ff14bbff000 ---p 00000000 00:00 0 
7ff14bbff000-7ff14c3ff000 rw-p 00000000 00:00 0                          [stack:6060]
7ff14c3ff000-7ff14c400000 ---p 00000000 00:00 0 
7ff14c400000-7ff15f800000 rw-p 00000000 00:00 0                          [stack:6059]
7ff15fbff000-7ff15fc00000 ---p 00000000 00:00 0 
7ff15fc00000-7ff168c00000 rw-p 00000000 00:00 0                          [stack:6058]
7ff168e06000-7ff168e0f000 r-xp 00000000 08:01 16524511                   /usr/lib/x86_64-linux-gnu/libltdl.so.7.3.0
7ff168e0f000-7ff16900e000 ---p 00009000 08:01 16524511                   /usr/lib/x86_64-linux-gnu/libltdl.so.7.3.0
7ff16900e000-7ff16900f000 r--p 00008000 08:01 16524511                   /usr/lib/x86_64-linux-gnu/libltdl.so.7.3.0
7ff16900f000-7ff169010000 rw-p 00009000 08:01 16524511                   /usr/lib/x86_64-linux-gnu/libltdl.so.7.3.0
7ff169010000-7ff169031000 r-xp 00000000 08:01 16396887                   /lib/x86_64-linux-gnu/liblzma.so.5.0.0
7ff169031000-7ff169230000 ---p 00021000 08:01 16396887                   /lib/x86_64-linux-gnu/liblzma.so.5.0.0
7ff169230000-7ff169231000 r--p 00020000 08:01 16396887                   /lib/x86_64-linux-gnu/liblzma.so.5.0.0
7ff169231000-7ff169232000 rw-p 00021000 08:01 16396887                   /lib/x86_64-linux-gnu/liblzma.so.5.0.0
7ff169232000-7ff169291000 r-xp 00000000 08:01 16524514                   /usr/lib/x86_64-linux-gnu/libodbc.so.1.0.0
7ff169291000-7ff169490000 ---p 0005f000 08:01 16524514                   /usr/lib/x86_64-linux-gnu/libodbc.so.1.0.0
7ff169490000-7ff169491000 r--p 0005e000 08:01 16524514                   /usr/lib/x86_64-linux-gnu/libodbc.so.1.0.0
7ff169491000-7ff169498000 rw-p 0005f000 08:01 16524514                   /usr/lib/x86_64-linux-gnu/libodbc.so.1.0.0
7ff169498000-7ff169499000 rw-p 00000000 00:00 0 
7ff169499000-7ff1695f5000 r-xp 00000000 08:01 16524481                   /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.1
7ff1695f5000-7ff1697f5000 ---p 0015c000 08:01 16524481                   /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.1
7ff1697f5000-7ff1697fd000 r--p 0015c000 08:01 16524481                   /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.1
7ff1697fd000-7ff1697ff000 rw-p 00164000 08:01 16524481                   /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.1
7ff1697ff000-7ff172000000 rw-p 00000000 00:00 0 
7ff17209a000-7ff1721ea000 r-xp 00000000 08:01 15470202                   /usr/lib/mysql/plugin/ha_connect.so
7ff1721ea000-7ff1723ea000 ---p 00150000 08:01 15470202                   /usr/lib/mysql/plugin/ha_connect.so
7ff1723ea000-7ff1723fb000 r--p 00150000 08:01 15470202                   /usr/lib/mysql/plugin/ha_connect.so
7ff1723fb000-7ff1723fd000 rw-p 00161000 08:01 15470202                   /usr/lib/mysql/plugin/ha_connect.so
7ff1723fd000-7ff1723ff000 rw-p 00000000 00:00 0 
7ff1723ff000-7ff172400000 ---p 00000000 00:00 0 
7ff172400000-7ff176c00000 rw-p 00000000 00:00 0                          [stack:6057]
7ff176dce000-7ff176dd9000 r-xp 00000000 08:01 16396899                   /lib/x86_64-linux-gnu/libnss_files-2.19.so
7ff176dd9000-7ff176fd8000 ---p 0000b000 08:01 16396899                   /lib/x86_64-linux-gnu/libnss_files-2.19.so
7ff176fd8000-7ff176fd9000 r--p 0000a000 08:01 16396899                   /lib/x86_64-linux-gnu/libnss_files-2.19.so
7ff176fd9000-7ff176fda000 rw-p 0000b000 08:01 16396899                   /lib/x86_64-linux-gnu/libnss_files-2.19.so
7ff176fda000-7ff176fe5000 r-xp 00000000 08:01 16396901                   /lib/x86_64-linux-gnu/libnss_nis-2.19.so
7ff176fe5000-7ff1771e4000 ---p 0000b000 08:01 16396901                   /lib/x86_64-linux-gnu/libnss_nis-2.19.so
7ff1771e4000-7ff1771e5000 r--p 0000a000 08:01 16396901                   /lib/x86_64-linux-gnu/libnss_nis-2.19.so
7ff1771e5000-7ff1771e6000 rw-p 0000b000 08:01 16396901                   /lib/x86_64-linux-gnu/libnss_nis-2.19.so
7ff1771e6000-7ff1771fd000 r-xp 00000000 08:01 16396896                   /lib/x86_64-linux-gnu/libnsl-2.19.so
7ff1771fd000-7ff1773fc000 ---p 00017000 08:01 16396896                   /lib/x86_64-linux-gnu/libnsl-2.19.so
7ff1773fc000-7ff1773fd000 r--p 00016000 08:01 16396896                   /lib/x86_64-linux-gnu/libnsl-2.19.so
7ff1773fd000-7ff1773fe000 rw-p 00017000 08:01 16396896                   /lib/x86_64-linux-gnu/libnsl-2.19.so
7ff1773fe000-7ff177c00000 rw-p 00000000 00:00 0 
7ff177c04000-7ff177c0d000 r-xp 00000000 08:01 16396897                   /lib/x86_64-linux-gnu/libnss_compat-2.19.so
7ff177c0d000-7ff177e0c000 ---p 00009000 08:01 16396897                   /lib/x86_64-linux-gnu/libnss_compat-2.19.so
7ff177e0c000-7ff177e0d000 r--p 00008000 08:01 16396897                   /lib/x86_64-linux-gnu/libnss_compat-2.19.so
7ff177e0d000-7ff177e0e000 rw-p 00009000 08:01 16396897                   /lib/x86_64-linux-gnu/libnss_compat-2.19.so
7ff177e0e000-7ff177e24000 r-xp 00000000 08:01 16396880                   /lib/x86_64-linux-gnu/libgcc_s.so.1
7ff177e24000-7ff178023000 ---p 00016000 08:01 16396880                   /lib/x86_64-linux-gnu/libgcc_s.so.1
7ff178023000-7ff178024000 rw-p 00015000 08:01 16396880                   /lib/x86_64-linux-gnu/libgcc_s.so.1
7ff178024000-7ff1781df000 r-xp 00000000 08:01 16396867                   /lib/x86_64-linux-gnu/libc-2.19.so
7ff1781df000-7ff1783de000 ---p 001bb000 08:01 16396867                   /lib/x86_64-linux-gnu/libc-2.19.so
7ff1783de000-7ff1783e2000 r--p 001ba000 08:01 16396867                   /lib/x86_64-linux-gnu/libc-2.19.so
7ff1783e2000-7ff1783e4000 rw-p 001be000 08:01 16396867                   /lib/x86_64-linux-gnu/libc-2.19.so
7ff1783e4000-7ff1783e9000 rw-p 00000000 00:00 0 
7ff1783e9000-7ff1784ee000 r-xp 00000000 08:01 16396888                   /lib/x86_64-linux-gnu/libm-2.19.so
7ff1784ee000-7ff1786ed000 ---p 00105000 08:01 16396888                   /lib/x86_64-linux-gnu/libm-2.19.so
7ff1786ed000-7ff1786ee000 r--p 00104000 08:01 16396888                   /lib/x86_64-linux-gnu/libm-2.19.so
7ff1786ee000-7ff1786ef000 rw-p 00105000 08:01 16396888                   /lib/x86_64-linux-gnu/libm-2.19.so
7ff1786ef000-7ff1787d5000 r-xp 00000000 08:01 16524426                   /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19
7ff1787d5000-7ff1789d4000 ---p 000e6000 08:01 16524426                   /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19
7ff1789d4000-7ff1789dc000 r--p 000e5000 08:01 16524426                   /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19
7ff1789dc000-7ff1789de000 rw-p 000ed000 08:01 16524426                   /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19
7ff1789de000-7ff1789f3000 rw-p 00000000 00:00 0 
7ff1789f3000-7ff178a0c000 r-xp 00000000 08:01 16396915                   /lib/x86_64-linux-gnu/libpthread-2.19.so
7ff178a0c000-7ff178c0b000 ---p 00019000 08:01 16396915                   /lib/x86_64-linux-gnu/libpthread-2.19.so
7ff178c0b000-7ff178c0c000 r--p 00018000 08:01 16396915                   /lib/x86_64-linux-gnu/libpthread-2.19.so
7ff178c0c000-7ff178c0d000 rw-p 00019000 08:01 16396915                   /lib/x86_64-linux-gnu/libpthread-2.19.so
7ff178c0d000-7ff178c11000 rw-p 00000000 00:00 0 
7ff178c11000-7ff178c14000 r-xp 00000000 08:01 16396876                   /lib/x86_64-linux-gnu/libdl-2.19.so
7ff178c14000-7ff178e13000 ---p 00003000 08:01 16396876                   /lib/x86_64-linux-gnu/libdl-2.19.so
7ff178e13000-7ff178e14000 r--p 00002000 08:01 16396876                   /lib/x86_64-linux-gnu/libdl-2.19.so
7ff178e14000-7ff178e15000 rw-p 00003000 08:01 16396876                   /lib/x86_64-linux-gnu/libdl-2.19.so
7ff178e15000-7ff178fc8000 r-xp 00000000 08:01 16396873                   /lib/x86_64-linux-gnu/libcrypto.so.1.0.0
7ff178fc8000-7ff1791c7000 ---p 001b3000 08:01 16396873                   /lib/x86_64-linux-gnu/libcrypto.so.1.0.0
7ff1791c7000-7ff1791e2000 r--p 001b2000 08:01 16396873                   /lib/x86_64-linux-gnu/libcrypto.so.1.0.0
7ff1791e2000-7ff1791ed000 rw-p 001cd000 08:01 16396873                   /lib/x86_64-linux-gnu/libcrypto.so.1.0.0
7ff1791ed000-7ff1791f1000 rw-p 00000000 00:00 0 
7ff1791f1000-7ff179246000 r-xp 00000000 08:01 16396923                   /lib/x86_64-linux-gnu/libssl.so.1.0.0
7ff179246000-7ff179446000 ---p 00055000 08:01 16396923                   /lib/x86_64-linux-gnu/libssl.so.1.0.0
7ff179446000-7ff179449000 r--p 00055000 08:01 16396923                   /lib/x86_64-linux-gnu/libssl.so.1.0.0
7ff179449000-7ff179450000 rw-p 00058000 08:01 16396923                   /lib/x86_64-linux-gnu/libssl.so.1.0.0
7ff179450000-7ff179459000 r-xp 00000000 08:01 16396872                   /lib/x86_64-linux-gnu/libcrypt-2.19.so
7ff179459000-7ff179659000 ---p 00009000 08:01 16396872                   /lib/x86_64-linux-gnu/libcrypt-2.19.so
7ff179659000-7ff17965a000 r--p 00009000 08:01 16396872                   /lib/x86_64-linux-gnu/libcrypt-2.19.so
7ff17965a000-7ff17965b000 rw-p 0000a000 08:01 16396872                   /lib/x86_64-linux-gnu/libcrypt-2.19.so
7ff17965b000-7ff179689000 rw-p 00000000 00:00 0 
7ff179689000-7ff1796b9000 r-xp 00000000 08:01 16524510                   /usr/lib/x86_64-linux-gnu/libjemalloc.so.1
7ff1796b9000-7ff1798b9000 ---p 00030000 08:01 16524510                   /usr/lib/x86_64-linux-gnu/libjemalloc.so.1
7ff1798b9000-7ff1798bb000 r--p 00030000 08:01 16524510                   /usr/lib/x86_64-linux-gnu/libjemalloc.so.1
7ff1798bb000-7ff1798bc000 rw-p 00032000 08:01 16524510                   /usr/lib/x86_64-linux-gnu/libjemalloc.so.1
7ff1798bc000-7ff1798bd000 rw-p 00000000 00:00 0 
7ff1798bd000-7ff1798d5000 r-xp 00000000 08:01 16396931                   /lib/x86_64-linux-gnu/libz.so.1.2.8
7ff1798d5000-7ff179ad4000 ---p 00018000 08:01 16396931                   /lib/x86_64-linux-gnu/libz.so.1.2.8
7ff179ad4000-7ff179ad5000 r--p 00017000 08:01 16396931                   /lib/x86_64-linux-gnu/libz.so.1.2.8
7ff179ad5000-7ff179ad6000 rw-p 00018000 08:01 16396931                   /lib/x86_64-linux-gnu/libz.so.1.2.8
7ff179ad6000-7ff179ad7000 r-xp 00000000 08:01 16396993                   /lib/x86_64-linux-gnu/libaio.so.1.0.1
7ff179ad7000-7ff179cd6000 ---p 00001000 08:01 16396993                   /lib/x86_64-linux-gnu/libaio.so.1.0.1
7ff179cd6000-7ff179cd7000 r--p 00000000 08:01 16396993                   /lib/x86_64-linux-gnu/libaio.so.1.0.1
7ff179cd7000-7ff179cd8000 rw-p 00001000 08:01 16396993                   /lib/x86_64-linux-gnu/libaio.so.1.0.1
7ff179cd8000-7ff179cfb000 r-xp 00000000 08:01 16396857                   /lib/x86_64-linux-gnu/ld-2.19.so
7ff179efa000-7ff179efb000 r--p 00022000 08:01 16396857                   /lib/x86_64-linux-gnu/ld-2.19.so
7ff179efb000-7ff179efc000 rw-p 00023000 08:01 16396857                   /lib/x86_64-linux-gnu/ld-2.19.so
7ff179efc000-7ff179efd000 rw-p 00000000 00:00 0 
7ff179efd000-7ff17ae4b000 r-xp 00000000 08:01 15470176                   /usr/sbin/mysqld
7ff17af27000-7ff17af28000 rw-p 00000000 00:00 0 
7ff17af28000-7ff17af29000 ---p 00000000 00:00 0 
7ff17af29000-7ff17af72000 rw-p 00000000 00:00 0                          [stack:6095]
7ff17af72000-7ff17af73000 ---p 00000000 00:00 0 
7ff17af73000-7ff17afbc000 rw-p 00000000 00:00 0                          [stack:6091]
7ff17afbc000-7ff17afbd000 ---p 00000000 00:00 0 
7ff17afbd000-7ff17b008000 rw-p 00000000 00:00 0                          [stack:6090]
7ff17b008000-7ff17b00a000 rw-s 00000000 00:0b 9840970                    /[aio] (deleted)
7ff17b00a000-7ff17b00f000 rw-s 00000000 00:0b 9840969                    /[aio] (deleted)
7ff17b00f000-7ff17b014000 rw-s 00000000 00:0b 9840968                    /[aio] (deleted)
7ff17b014000-7ff17b019000 rw-s 00000000 00:0b 9840967                    /[aio] (deleted)
7ff17b019000-7ff17b01e000 rw-s 00000000 00:0b 9840966                    /[aio] (deleted)
7ff17b01e000-7ff17b023000 rw-s 00000000 00:0b 9840965                    /[aio] (deleted)
7ff17b023000-7ff17b028000 rw-s 00000000 00:0b 9840964                    /[aio] (deleted)
7ff17b028000-7ff17b02d000 rw-s 00000000 00:0b 9840963                    /[aio] (deleted)
7ff17b02d000-7ff17b032000 rw-s 00000000 00:0b 9840962                    /[aio] (deleted)
7ff17b032000-7ff17b037000 rw-s 00000000 00:0b 9840961                    /[aio] (deleted)
7ff17b037000-7ff17b03c000 rw-s 00000000 00:0b 9840960                    /[aio] (deleted)
7ff17b03c000-7ff17b045000 rw-p 00000000 00:00 0 
7ff17b045000-7ff17b046000 rw-s 00000000 00:0b 9840959                    /[aio] (deleted)
7ff17b046000-7ff17b04b000 rw-p 00000000 00:00 0 
7ff17b04b000-7ff17b0fb000 r--p 00f4e000 08:01 15470176                   /usr/sbin/mysqld
7ff17b0fb000-7ff17b19f000 rw-p 00ffe000 08:01 15470176                   /usr/sbin/mysqld
7ff17b19f000-7ff17ba14000 rw-p 00000000 00:00 0 
7ffe47d4d000-7ffe47d6e000 rw-p 00000000 00:00 0                          [stack]
7ffe47de9000-7ffe47deb000 r-xp 00000000 00:00 0                          [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]
ERROR 2013 (HY000): Lost connection to MySQL server during query
MariaDB [frites]> 

Partitioning works fine without connect like this :

create table t5 (
id int key not null,
msg varchar(32))
engine=connect table_type=MYSQL tabname='rt%s'
partition by range columns(id) (
partition `1` values less than(10),
partition `2` values less than(50),
partition `3` values less than(MAXVALUE));

Thanks,
Alex.



 Comments   
Comment by Elena Stepanova [ 2016-03-24 ]

Thanks for the report and the test case.

Comment by Elena Stepanova [ 2016-03-24 ]

Reproducible on a non-debug build.

Stack trace from commit 2783fc7d14bc8ad16acfeb509d3b19615023f47a

2016-03-24  2:07:30 140118229105408 [Note] CONNECT: Version 1.04.0006 March 12, 2016
160324  2:07:30 [ERROR] mysqld got signal 6 ;
 
#7  0x00007f6fcf26e6e0 in __chk_fail () from /lib64/libc.so.6
#8  0x00007f6fa3d38a1b in strcpy (__src=<optimized out>, __dest=0x7f6fa40d3ba1 "test#P#root@003apasswd@0040127@002e0@002e0@002e1@002ffrites@002f") at /usr/include/bits/string3.h:104
#9  ha_connect::open (this=0x7f6fa40d3420, name=0x7f6fd14580c0 "./frites/test#P#root@003apasswd@0040127@002e0@002e0@002e1@002ffrites@002ftest1", mode=<optimized out>, test_if_locked=<optimized out>) at /src/10.1-bug/storage/connect/ha_connect.cc:3129
#10 0x000055f5fdf145ba in handler::ha_open (this=0x7f6fa40d3420, table_arg=<optimized out>, name=name@entry=0x7f6fd14580c0 "./frites/test#P#root@003apasswd@0040127@002e0@002e0@002e1@002ffrites@002ftest1", mode=mode@entry=2, test_if_locked=test_if_locked@entry=1042) at /src/10.1-bug/sql/handler.cc:2500
#11 0x000055f5fe329b40 in ha_partition::open (this=0x7f6fa405ae20, name=0x7f6fa4022200 "./frites/test", mode=2, test_if_locked=<optimized out>) at /src/10.1-bug/sql/ha_partition.cc:3493
#12 0x000055f5fdf145ba in handler::ha_open (this=0x7f6fa405ae20, table_arg=table_arg@entry=0x7f6fa4032008, name=0x7f6fa4022200 "./frites/test", mode=mode@entry=2, test_if_locked=test_if_locked@entry=18) at /src/10.1-bug/sql/handler.cc:2500
#13 0x000055f5fde453d8 in open_table_from_share (thd=thd@entry=0x7f6fbc9b0f88, share=share@entry=0x7f6fa4021e20, alias=<optimized out>, db_stat=db_stat@entry=39, prgflag=prgflag@entry=44, ha_open_flags=18, outparam=<optimized out>, is_create_table=<optimized out>, is_create_table@entry=false) at /src/10.1-bug/sql/table.cc:2927
#14 0x000055f5fdd6b897 in open_table (thd=thd@entry=0x7f6fbc9b0f88, table_list=table_list@entry=0x7f6fa4041038, ot_ctx=ot_ctx@entry=0x7f6fd1458ac0) at /src/10.1-bug/sql/sql_base.cc:2563
#15 0x000055f5fdd6f7b5 in open_and_process_table (ot_ctx=0x7f6fd1458ac0, has_prelocking_list=false, prelocking_strategy=0x7f6fd1458ba0, flags=0, counter=0x7f6fd1458b5c, tables=0x7f6fa4041038, lex=0x7f6fbc9b4798, thd=0x7f6fbc9b0f88) at /src/10.1-bug/sql/sql_base.cc:4073
#16 open_tables (thd=thd@entry=0x7f6fbc9b0f88, options=..., start=start@entry=0x7f6fd1458b48, counter=counter@entry=0x7f6fd1458b5c, flags=flags@entry=0, prelocking_strategy=prelocking_strategy@entry=0x7f6fd1458ba0) at /src/10.1-bug/sql/sql_base.cc:4584
#17 0x000055f5fdd6fadd in open_and_lock_tables (thd=thd@entry=0x7f6fbc9b0f88, options=..., tables=tables@entry=0x7f6fa4041038, derived=derived@entry=true, flags=flags@entry=0, prelocking_strategy=prelocking_strategy@entry=0x7f6fd1458ba0) at /src/10.1-bug/sql/sql_base.cc:5246
#18 0x000055f5fdda3e39 in open_and_lock_tables (flags=0, derived=true, tables=0x7f6fa4041038, thd=0x7f6fbc9b0f88) at /src/10.1-bug/sql/sql_base.h:530
#19 execute_sqlcom_select (thd=thd@entry=0x7f6fbc9b0f88, all_tables=0x7f6fa4041038) at /src/10.1-bug/sql/sql_parse.cc:5825
#20 0x000055f5fddafda7 in mysql_execute_command (thd=thd@entry=0x7f6fbc9b0f88) at /src/10.1-bug/sql/sql_parse.cc:2960
#21 0x000055f5fddb30d6 in mysql_parse (thd=0x7f6fbc9b0f88, rawbuf=<optimized out>, length=<optimized out>, parser_state=0x7f6fd145a610) at /src/10.1-bug/sql/sql_parse.cc:7304
#22 0x000055f5fddb620d in dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=0x7f6fbc9b0f88, packet=packet@entry=0x7f6fabd5d949 "select * from test", packet_length=packet_length@entry=18) at /src/10.1-bug/sql/sql_parse.cc:1486
#23 0x000055f5fddb69c1 in do_command (thd=0x7f6fbc9b0f88) at /src/10.1-bug/sql/sql_parse.cc:1107
#24 0x000055f5fde69ff4 in do_handle_one_connection (thd_arg=thd_arg@entry=0x7f6fbc9b0f88) at /src/10.1-bug/sql/sql_connect.cc:1349
#25 0x000055f5fde6a1c7 in handle_one_connection (arg=0x7f6fbc9b0f88) at /src/10.1-bug/sql/sql_connect.cc:1261
#26 0x00007f6fd10f20a4 in start_thread () from /lib64/libpthread.so.0
#27 0x00007f6fcf26004d in clone () from /lib64/libc.so.6

Debug build of 10.1 and any build of 10.0 instead returns

MariaDB [frites]> select * from test;
ERROR 1296 (HY000): Got error 174 'This MySQL table is defined on itself' from CONNECT

Comment by Olivier Bertrand [ 2016-03-25 ]

It was a regression bug preventing to get the connection string from the option list. This explain the error message about a table created on itself.
I also protected the partname setting to avoid the buffer overflow, in particular in a code that was wrongly executed because of the above bug.
Note that partition names are limited to 64 characters.

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