Bug #36367 Falcon DBT2 crash in Cache::ioThread
Submitted: 28 Apr 2008 4:58 Modified: 5 Oct 2008 15:20
Reporter: Hakan Küçükyılmaz Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Falcon storage engine Severity:S3 (Non-critical)
Version:6.0, 6.0-falcon-team OS:Linux
Assigned to: Jim Starkey CPU Architecture:Any

[28 Apr 2008 4:58] Hakan Küçükyılmaz
Description:
Falcon DBT2 crash in Cache::ioThread.

How to repeat:
Running DBT2 benchmark tests crashes Falcon sometimes

/data0/work/mysql/mysql-6.0-falcon-team/sql/mysqld(print_stacktrace+0x27)[0x780657]
/data0/work/mysql/mysql-6.0-falcon-team/sql/mysqld(handle_segfault+0x336)[0x638ba6]
/lib64/libpthread.so.0[0x2ae91c7f9c10]
/lib64/libpthread.so.0(raise+0x2d)[0x2ae91c7f9abd]
/data0/work/mysql/mysql-6.0-falcon-team/sql/mysqld(_ZN5Error5errorEPKcz+0xe3)[0x823f13]
/data0/work/mysql/mysql-6.0-falcon-team/sql/mysqld(_ZN5Cache8ioThreadEv+0x1e8)[0x801fd8]
/data0/work/mysql/mysql-6.0-falcon-team/sql/mysqld(_ZN6Thread6threadEv+0x95)[0x7eee55]
/data0/work/mysql/mysql-6.0-falcon-team/sql/mysqld(_ZN6Thread6threadEPv+0x11)[0x7ef031]
/lib64/libpthread.so.0[0x2ae91c7f2143]
/lib64/libc.so.6(__clone+0x6d)[0x2ae91cf3774d]
080427 23:35:28 - mysqld got signal 6 ;
[28 Apr 2008 4:59] Hakan Küçükyılmaz
Similar stack trace in Bug#33767
[28 Apr 2008 13:27] Kevin Lewis
This stack trace unfortunately does not contain line numbers.  But the similar trace in bug#33767 does.  And it indicates that this line asserted;

ASSERT(!(bdb->flags & BDB_write_pending));

If this bug happened on the same line, then these two bugs are similar to bug#36294 in which this assertion failed in Cache::writePage();

	ASSERT(!(bdb->flags & BDB_write_pending));

bdb->flags is 17 (==BDB_dirty|BDB_write_pending)

I think these are related.
[9 May 2008 5:07] Kevin Lewis
Jim pushed this change today which should make the flags variable thread safe.
The BDB_write_pending flag that was involved in this assertion is no longer used.
It was not really needed anymore.

ChangeSet@1.2667.1.7, 2008-05-08 16:37:28-04:00, jas@rowvwade. +4 -0
  Replaced Bdb::flags with individual booleans for "dirty" and "registered"
  (by PageWriter) to get around non-thread safe usage.
  This is a fix for bugs 36294 and 36367.
[29 Aug 2008 1:53] Kevin Lewis
This fix is in version 6.0.6
[5 Oct 2008 15:20] Jon Stephens
Documented in the 6.0.6 changelog. See Bug #36294 for changelog entry.