Bug #39215 Crash/assertion in Cache::fetchPage upon recovery
Submitted: 3 Sep 2008 15:05 Modified: 5 Nov 2008 23:27
Reporter: Philip Stoev Email Updates:
Status: Can't repeat Impact on me:
None 
Category:MySQL Server: Falcon storage engine Severity:S1 (Critical)
Version:6.0-falcon-team OS:Any
Assigned to: Vladislav Vaintroub CPU Architecture:Any
Tags: F_PAGE IO

[3 Sep 2008 15:05] Philip Stoev
Description:
The following crash happens when Falcon attempts to recover after an kill -9 crash. It has been observed under various workloads and affects probably 5% of all recovery attempts.

The backtrace is as follows:

(my_print_stacktrace+0x26) [0x87e2d53]
(handle_segfault+0x2cd) [0x82ac665]
[0xf84420]
(Error::debugBreak()+0x12) [0x8585df8]
(Error::error(char const*, ...)+0x7a) [0x8585e74]
(Cache::fetchPage(Dbb*, int, PageType, LockType)+0x3b5) [0x86149ff]
(Dbb::fetchPage(int, PageType, LockType)+0x48) [0x857bc02]
(RecordLocatorPage::deleteDataPages(Dbb*, unsigned int)+0x4c) [0x8626bf4]
(Section::deleteSectionLevel(Dbb*, int, unsigned int)+0x1aa) [0x85dfe24]
(Section::deleteSection(Dbb*, int, unsigned int)+0x185) [0x85e142d]
(Dbb::deleteSection(int, unsigned int)+0xac) [0x857b4d8]
(SRLDropTable::redo()+0x75) [0x85d5b19]
(SerialLog::recover()+0x97d) [0x85ea059]
(Database::openDatabase(char const*)+0x3e3) [0x85746cf]
(Connection::getDatabase(char const*, char const*, Threads*)+0x149) [0x85682b7]
(Connection::openDatabase(char const*, char const*, char const*, char const*, char const*, Threads*)+0x198) [0x85697d2]
(StorageDatabase::getOpenConnection()+0x86) [0x852e96e]
(StorageHandler::initialize()+0x9f) [0x8530e7f]
(StorageInterface::falcon_init(void*)+0x1e7) [0x8522dad]
(ha_initialize_handlerton(st_plugin_int*)+0x99) [0x83de465]
 [0x848efc6]
(plugin_init(int*, char**, int)+0x5ec) [0x8490368]
 [0x82af09c]
(main+0x228) [0x82affd6]

How to repeat:
with the random query generator, run many times:

$ runall.pl \ 
  --basedir=/path/to/6.0-falcon-team \
  --reporters=ErrorLog,Backtrace,Recovery \ 
  --mysqld=--loose-falcon-lock-wait-timeout=1 \ 
  --engine=Falcon \ 
  --grammar=conf/falcon_online_alter.yy \ 
  --queries=100000