Bug #42394 Unnecessary calls to TableSpace::open() in TableSpaceManager::bootstrap()
Submitted: 27 Jan 2009 20:14 Modified: 28 Jan 2009 7:01
Reporter: Vladislav Vaintroub Email Updates:
Status: Closed Impact on me:
Category:MySQL Server: Falcon storage engine Severity:S3 (Non-critical)
Version:6.10-bzr OS:Any
Assigned to: Vladislav Vaintroub CPU Architecture:Any

[27 Jan 2009 20:14] Vladislav Vaintroub
TableSpaceManager::bootstrap() is executed before recovery. 
One needs to be extremely cautious in this phase, because structures on disk maybe inconsistent at this time. The less work is done the better.

During bootstrap we only need to associate tablespace ids with filenames and tablespace names.

Yet, falcon calls TableSpace::open() that except opening file that is potentially not there will also examine all PIP pages that are potentially not there in Dbb::initRepository/PageInventoryPage::getLastPage(). 

How to repeat:
Code inspection

Suggested fix:
do not call TableSpace::open() during bootstrap. There is no need to do it.
Tablespace should be opened when recovery needs it, not earlier.
[28 Jan 2009 7:01] Vladislav Vaintroub
Fix together with Bug #42392 in the same patch