Bug #64874 | crash in mem_heap_create_block at loading DBT3 database | ||
---|---|---|---|
Submitted: | 5 Apr 2012 12:24 | Modified: | 24 Dec 2012 9:18 |
Reporter: | Axel Schwenke | Email Updates: | |
Status: | Duplicate | Impact on me: | |
Category: | MySQL Server: InnoDB storage engine | Severity: | S1 (Critical) |
Version: | 5.6.6 | OS: | Any |
Assigned to: | Assigned Account | CPU Architecture: | Any |
[5 Apr 2012 12:24]
Axel Schwenke
[5 Apr 2012 12:53]
Vasil Dimov
Hi, can you try to repro with this patch, it will make it a bit more clear: --- cut --- --- storage/innobase/mem/mem0mem.cc revid:alfranio.correia@oracle.com-20120404070653-zqvny9ncbho5x1a2 +++ storage/innobase/mem/mem0mem.cc 2012-04-05 12:48:03 +0000 @@ -329,12 +329,13 @@ mem_heap_create_block( if (type == MEM_HEAP_DYNAMIC || len < UNIV_PAGE_SIZE / 2) { ut_ad(type == MEM_HEAP_DYNAMIC || n <= MEM_MAX_ALLOC_IN_BUF); block = static_cast<mem_block_t*>( mem_area_alloc(&len, mem_comm_pool)); + ut_a(block != NULL); } else { len = UNIV_PAGE_SIZE; if ((type & MEM_HEAP_BTR_SEARCH) && heap) { /* We cannot allocate the block from the buffer pool, but must get the free block from @@ -349,12 +350,13 @@ mem_heap_create_block( } } else { buf_block = buf_block_alloc(NULL); } block = (mem_block_t*) buf_block->frame; + ut_a(block != NULL); } ut_ad(block); block->buf_block = buf_block; block->free_block = NULL; #else /* !UNIV_HOTBACKUP */ --- cut --- Thanks!
[11 Apr 2012 13:01]
Axel Schwenke
Hi Vasil, the first assert is triggered. From the error log: 120411 15:59:31 [Note] /home/mariadb/bin/mysql-5.6-trunk/libexec/mysqld: ready for connections. Version: '5.6.6-m8' socket: '/tmp/mysqld.sock.xl' port: 0 Source distribution 120411 16:02:05 InnoDB: Assertion failure in thread 140136747951872 in file mem0mem.cc line 335 InnoDB: Failing assertion: block != NULL InnoDB: We intentionally generate a memory trap. InnoDB: Submit a detailed bug report to http://bugs.mysql.com.
[11 Apr 2012 15:55]
Axel Schwenke
Just for the record: I reproduced the same crash with the lab-April2012 release (using the Linux-x86-64 binary tarball)
[11 Apr 2012 18:45]
Vasil Dimov
Hi Axel, This means that you have ran out of memory (malloc(3) returning NULL). Crash even without a proper message is very harsh. This should be fixed.
[24 Dec 2012 9:18]
Erlend Dahl
This is a duplicate of an internally filed bug, which was fixed on the milestone release of 5.6.6.