mirror of
https://github.com/MariaDB/server.git
synced 2025-01-31 11:01:52 +01:00
fix for bug#19651, if temporary error occured while retoring, report it in the restore result.
This commit is contained in:
parent
cb6d518d07
commit
192c01e164
4 changed files with 21 additions and 0 deletions
|
@ -31,6 +31,7 @@ public:
|
|||
virtual void logEntry(const LogEntry &){}
|
||||
virtual void endOfLogEntrys(){}
|
||||
virtual bool finalize_table(const TableS &){return true;}
|
||||
virtual bool has_temp_error() {return false;}
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -139,6 +139,11 @@ BackupRestore::finalize_table(const TableS & table){
|
|||
return ret;
|
||||
}
|
||||
|
||||
bool
|
||||
BackupRestore::has_temp_error(){
|
||||
return m_temp_error;
|
||||
}
|
||||
|
||||
bool
|
||||
BackupRestore::table(const TableS & table){
|
||||
if (!m_restore && !m_restore_meta)
|
||||
|
@ -437,6 +442,7 @@ bool BackupRestore::errorHandler(restore_callback_t *cb)
|
|||
|
||||
case NdbError::TemporaryError:
|
||||
err << "Temporary error: " << error << endl;
|
||||
m_temp_error = true;
|
||||
NdbSleep_MilliSleep(sleepTime);
|
||||
return true;
|
||||
// RETRY
|
||||
|
|
|
@ -41,6 +41,7 @@ public:
|
|||
m_parallelism = parallelism;
|
||||
m_callback = 0;
|
||||
m_free_callback = 0;
|
||||
m_temp_error = false;
|
||||
m_transactions = 0;
|
||||
m_cache.m_old_table = 0;
|
||||
}
|
||||
|
@ -60,6 +61,7 @@ public:
|
|||
virtual void logEntry(const LogEntry &);
|
||||
virtual void endOfLogEntrys();
|
||||
virtual bool finalize_table(const TableS &);
|
||||
virtual bool has_temp_error();
|
||||
void connectToMysql();
|
||||
Ndb * m_ndb;
|
||||
bool m_restore;
|
||||
|
@ -72,6 +74,7 @@ public:
|
|||
|
||||
restore_callback_t *m_callback;
|
||||
restore_callback_t *m_free_callback;
|
||||
bool m_temp_error;
|
||||
|
||||
/**
|
||||
* m_new_table_ids[X] = Y;
|
||||
|
|
|
@ -411,6 +411,17 @@ main(int argc, char** argv)
|
|||
}
|
||||
}
|
||||
}
|
||||
for(Uint32 i= 0; i < g_consumers.size(); i++)
|
||||
{
|
||||
if (g_consumers[i]->has_temp_error())
|
||||
{
|
||||
clearConsumers();
|
||||
ndbout_c("\nRestore successful, but encountered temporary error, "
|
||||
"please look at configuration.");
|
||||
return NDBT_ProgramExit(NDBT_TEMPORARY);
|
||||
}
|
||||
}
|
||||
|
||||
clearConsumers();
|
||||
return NDBT_ProgramExit(NDBT_OK);
|
||||
} // main
|
||||
|
|
Loading…
Add table
Reference in a new issue