Browse Source

Fix unnecessary printout of same writer thread more than once. Fixed

also a compiler warning.
pull/57/head
Jan Lindström 11 years ago
parent
commit
476feba941
  1. 2
      storage/innobase/handler/ha_innodb.cc
  2. 14
      storage/innobase/sync/sync0arr.cc
  3. 3
      storage/xtradb/sync/sync0arr.cc

2
storage/innobase/handler/ha_innodb.cc

@ -17341,7 +17341,7 @@ ib_senderrf(
va_start(args, code);
myf l;
myf l=0;
switch(level) {
case IB_LOG_LEVEL_INFO:

14
storage/innobase/sync/sync0arr.cc

@ -966,7 +966,7 @@ sync_array_print_long_waits_low(
if (*noticed) {
for (i = 0; i < arr->n_cells; i++) {
void* wait_object;
os_thread_id_t reserver=0;
os_thread_id_t reserver=ULINT_UNDEFINED;
sync_cell_t* cell;
ulint loop = 0;
@ -984,7 +984,7 @@ sync_array_print_long_waits_low(
sync_array_cell_print(stderr, cell, &reserver);
/* Try to output cell information for writer recursive way */
while (reserver != 0) {
while (reserver != ULINT_UNDEFINED) {
sync_cell_t* reserver_wait;
reserver_wait = sync_array_find_thread(arr, reserver);
@ -994,16 +994,22 @@ sync_array_print_long_waits_low(
reserver_wait->waiting) {
fputs("InnoDB: Warning: Writer thread is waiting this semaphore:\n",
stderr);
reserver = ULINT_UNDEFINED;
sync_array_cell_print(stderr, reserver_wait, &reserver);
loop++;
if (reserver_wait->thread == reserver) {
reserver = ULINT_UNDEFINED;
}
} else {
reserver = 0;
reserver = ULINT_UNDEFINED;
}
/* This is protection against loop */
if (loop > 100) {
fputs("InnoDB: Warning: Too many waiting threads.\n", stderr);
break;
}
}
}
}

3
storage/xtradb/sync/sync0arr.cc

@ -1062,7 +1062,7 @@ sync_array_print_long_waits_low(
for (i = 0; i < arr->n_cells; i++) {
void* wait_object;
sync_cell_t* cell;
os_thread_id_t reserver=0;
os_thread_id_t reserver=ULINT_UNDEFINED;
ulint loop=0;
cell = sync_array_get_nth_cell(arr, i);
@ -1090,7 +1090,6 @@ sync_array_print_long_waits_low(
fputs("InnoDB: Warning: Writer thread is waiting this semaphore:\n",
stderr);
sync_array_cell_print(stderr, reserver_wait, &reserver);
loop++;
} else {
reserver = 0;
}

Loading…
Cancel
Save