Bug #33237 NDB_MGM 'eat' 99% cpu utilization

This commit is contained in:
unknown 2007-12-14 13:43:48 +01:00
commit 6c4500517d
3 changed files with 11 additions and 79 deletions

View file

@ -921,10 +921,14 @@ event_thread_run(void* p)
{
do_event_thread= 1;
do {
if (ndb_logevent_get_next(log_handle, &log_event, 2000) <= 0)
continue;
Guard g(printmutex);
printLogEvent(&log_event);
int res= ndb_logevent_get_next(log_handle, &log_event, 2000);
if (res > 0)
{
Guard g(printmutex);
printLogEvent(&log_event);
}
else if (res < 0)
break;
} while(do_event_thread);
ndb_mgm_destroy_logevent_handle(&log_handle);
}
@ -2722,8 +2726,9 @@ CommandInterpreter::executeStartBackup(char* parameters, bool interactive)
{
int count = 0;
int retry = 0;
int res;
do {
if (ndb_logevent_get_next(log_handle, &log_event, 60000) > 0)
if ((res= ndb_logevent_get_next(log_handle, &log_event, 60000)) > 0)
{
int print = 0;
switch (log_event.type) {
@ -2753,7 +2758,7 @@ CommandInterpreter::executeStartBackup(char* parameters, bool interactive)
{
retry++;
}
} while(count < 2 && retry < 3);
} while(res >= 0 && count < 2 && retry < 3);
if (retry >= 3)
ndbout << "get backup event failed for " << retry << " times" << endl;