Bug #14524 Partitions: crash if blackhole
Submitted: 31 Oct 2005 21:10 Modified: 2 Feb 2006 14:31
Reporter: Peter Gulutzan Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Partitions Severity:S3 (Non-critical)
Version:5.1.2-alpha-debug OS:Linux (SUSE 10.0)
Assigned to: Reggie Burnett CPU Architecture:Any

[31 Oct 2005 21:10] Peter Gulutzan
Description:
If I try to insert into a partitioned blackhole table, crash.

How to repeat:
mysql> create table tb (s1 int) engine=blackhole partition by hash (s1);
Query OK, 0 rows affected (0.01 sec)

mysql> insert into tb values (0);
ERROR 2013 (HY000): Lost connection to MySQL server during query
[31 Oct 2005 21:50] Jorge del Conde
I was able to reproduce this using a fresh clone of 5.1
[18 Nov 2005 4:05] Patrick Galbraith
This error seems to be due to trying to lock the table (file) and not handling a lock properly for a blackhole type table since there is no file for it. (theory). This is what I get using gdb/ddd:

Dump of assembler code from 0x852bf1c to 0x852c01c:
   0x0852bf1c <safe_mutex_lock+10>:        cmpl   $0x0,0x30(%eax)
   0x0852bf20 <safe_mutex_lock+14>:        jne    0x852bf57 <safe_mutex_lock+69>
   0x0852bf22 <safe_mutex_lock+16>:        mov    0x10(%ebp),%eax
   0x0852bf25 <safe_mutex_lock+19>:        mov    %eax,0xc(%esp)

Program received signal SIGSEGV, Segmentation fault.
0x0852bf1c in safe_mutex_lock (mp=0xc, file=0x862d423 "thr_lock.c", line=482) at thr_mutex.c:98
Current language:  auto; currently c
(gdb)

The code line where it segfaults:

nt safe_mutex_lock(safe_mutex_t *mp,const char *file, uint line)
{
 int error;
 if (!mp->file)   <---
 {
[19 Nov 2005 1:06] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/internals/32422
[21 Nov 2005 23:25] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/internals/32500
[30 Jan 2006 19:53] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/1893
[30 Jan 2006 20:49] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/1897
[2 Feb 2006 14:31] Jon Stephens
Thank you for your bug report. This issue has been committed to our
source repository of that product and will be incorporated into the
next release.

If necessary, you can access the source repository and build the latest
available version, including the bugfix, yourself. More information 
about accessing the source trees is available at
    http://www.mysql.com/doc/en/Installing_source_tree.html

Additional info:

Documented in 5.1.16 changelog. Closed. :)