summaryrefslogtreecommitdiff
path: root/innobase/srv/srv0srv.c
diff options
context:
space:
mode:
Diffstat (limited to 'innobase/srv/srv0srv.c')
-rw-r--r--innobase/srv/srv0srv.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/innobase/srv/srv0srv.c b/innobase/srv/srv0srv.c
index 6612b2006eb..2bdcbe29758 100644
--- a/innobase/srv/srv0srv.c
+++ b/innobase/srv/srv0srv.c
@@ -1727,6 +1727,7 @@ srv_conc_enter_innodb(
ibool has_slept = FALSE;
srv_conc_slot_t* slot;
ulint i;
+ char err_buf[1000];
if (srv_thread_concurrency >= 500) {
/* Disable the concurrency check */
@@ -1745,6 +1746,16 @@ srv_conc_enter_innodb(
retry:
os_fast_mutex_lock(&srv_conc_mutex);
+ if (trx->declared_to_be_inside_innodb) {
+ ut_print_timestamp(stderr);
+
+ trx_print(err_buf, trx);
+
+ fprintf(stderr,
+" InnoDB: Error: trying to declare trx to enter InnoDB, but\n"
+"InnoDB: it already is declared.\n%s\n", err_buf);
+ }
+
if (srv_conc_n_threads < (lint)srv_thread_concurrency) {
srv_conc_n_threads++;
@@ -1815,8 +1826,12 @@ retry:
/* Go to wait for the event; when a thread leaves InnoDB it will
release this thread */
+ trx->op_info = "waiting in InnoDB queue";
+
os_event_wait(slot->event);
+ trx->op_info = "";
+
os_fast_mutex_lock(&srv_conc_mutex);
srv_conc_n_waiting_threads--;