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:
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
Triage: D1 (Critical) / R3 (Medium) / E4 (High)

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

How to repeat:
Running DBT2 benchmark tests crashes Falcon sometimes

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.