#At file:///G:/bzr/bs2/ based on revid:christopher.powers@stripped
3013 Vladislav Vaintroub 2009-02-11
#42743 : Falcon fails to recover;Test tablespace file is not open when doing a fetchPage
The tablespace was not open when read was attempted.
This is a regression from previous behavior, introduced during great tablespace recovery cleanup.
(TableSpaceManager::bootstrap() does not open files).
Fix reverts the change, and all tablespaces that can l be opened, will be opened during bootstrap.
modified:
storage/falcon/TableSpaceManager.cpp
=== modified file 'storage/falcon/TableSpaceManager.cpp'
--- a/storage/falcon/TableSpaceManager.cpp 2009-01-31 23:22:42 +0000
+++ b/storage/falcon/TableSpaceManager.cpp 2009-02-10 23:29:28 +0000
@@ -217,6 +217,17 @@ void TableSpaceManager::bootstrap(int se
TableSpace *tableSpace = new TableSpace(database, name.getString(), id.getInt(), fileName.getString(), type.getInt(), NULL);
Log::debug("New table space %s, id %d, type %d, filename %s\n", (const char*) tableSpace->name, tableSpace->tableSpaceId, tableSpace->type, (const char*) tableSpace->filename);
+ try
+ {
+ tableSpace->open();
+ }
+ catch(SQLException &e)
+ {
+ Log::debug("Can't open tablespace %s, id %d : %s\n",
+ (const char*) tableSpace->name, tableSpace->tableSpaceId,e.getText());
+ delete tableSpace;
+ continue;
+ }
add(tableSpace);
stream.clear();
@@ -237,7 +248,7 @@ TableSpace* TableSpaceManager::getTableS
TableSpace *tableSpace = findTableSpace(id);
if (!tableSpace)
- throw SQLError(COMPILE_ERROR, "can't find table space %d", id);
+ throw SQLError(TABLESPACE_NOT_EXIST_ERROR, "can't find table space %d", id);
if (!tableSpace->active)
tableSpace->open();
| Thread |
|---|
| • bzr commit into mysql-6.0-falcon-team branch (vvaintroub:3013) | Vladislav Vaintroub | 11 Feb |