Bug #36367 Falcon DBT2 crash in Cache::ioThread
Submitted: 28 Apr 2008 6:58 Modified: 5 Oct 2008 17:20
Reporter: Hakan Kuecuekyilmaz
Status: Closed
Category:Server: Falcon Severity:S3 (Non-critical)
Version:6.0, 6.0-falcon-team OS:Linux
Assigned to: Bugs System Target Version:6.0.6
Triage: D1 (Critical) / R3 (Medium) / E4 (High)

[28 Apr 2008 6:58] Hakan Kuecuekyilmaz
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 6:59] Hakan Kuecuekyilmaz
Similar stack trace in Bug#33767
[28 Apr 2008 15: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 7: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 3:53] Kevin Lewis
This fix is in version 6.0.6
[5 Oct 2008 17:20] Jon Stephens
Documented in the 6.0.6 changelog. See Bug #36294 for changelog entry.