Commit 92fb1f3b authored by Kentoku SHIBA's avatar Kentoku SHIBA

MDEV-5299 crash at using show index

parent 20e144a6
...@@ -8100,11 +8100,31 @@ int ha_spider::info( ...@@ -8100,11 +8100,31 @@ int ha_spider::info(
if (sts_interval == 0) if (sts_interval == 0)
pthread_mutex_lock(&share->sts_mutex); pthread_mutex_lock(&share->sts_mutex);
if (difftime(tmp_time, share->sts_get_time) >= sts_interval) if (difftime(tmp_time, share->sts_get_time) >= sts_interval)
{
if ((error_num = spider_check_trx_and_get_conn(ha_thd(), this,
FALSE)))
{
if (!share->sts_init)
{ {
if ( if (
(error_num = spider_check_trx_and_get_conn(ha_thd(), this, spider_init_error_table ||
FALSE)) || (spider_init_error_table =
(error_num = spider_get_sts(share, search_link_idx, tmp_time, spider_get_init_error_table(trx, share, TRUE))
) {
spider_init_error_table->init_error = error_num;
if ((spider_init_error_table->init_error_with_message =
thd->is_error()))
strmov(spider_init_error_table->init_error_msg,
spider_stmt_da_message(thd));
spider_init_error_table->init_error_time =
(time_t) time((time_t*) 0);
}
share->init_error = TRUE;
share->init = TRUE;
}
DBUG_RETURN(check_error_mode(error_num));
}
if ((error_num = spider_get_sts(share, search_link_idx, tmp_time,
this, sts_interval, sts_mode, this, sts_interval, sts_mode,
#ifdef WITH_PARTITION_STORAGE_ENGINE #ifdef WITH_PARTITION_STORAGE_ENGINE
sts_sync, sts_sync,
...@@ -8546,6 +8566,10 @@ int ha_spider::check_crd() ...@@ -8546,6 +8566,10 @@ int ha_spider::check_crd()
} }
if (crd_mode == 3) if (crd_mode == 3)
crd_mode = 1; crd_mode = 1;
if ((error_num = spider_check_trx_and_get_conn(ha_thd(), this, FALSE)))
{
DBUG_RETURN(check_error_mode(error_num));
}
dbton_id = share->sql_dbton_ids[search_link_idx]; dbton_id = share->sql_dbton_ids[search_link_idx];
dbton_hdl = dbton_handler[dbton_id]; dbton_hdl = dbton_handler[dbton_id];
crd_mode = dbton_hdl->crd_mode_exchange(crd_mode); crd_mode = dbton_hdl->crd_mode_exchange(crd_mode);
......
...@@ -3425,8 +3425,6 @@ int spider_check_trx_and_get_conn( ...@@ -3425,8 +3425,6 @@ int spider_check_trx_and_get_conn(
DBUG_PRINT("info",("spider semi_table_lock = %d", DBUG_PRINT("info",("spider semi_table_lock = %d",
spider_param_semi_table_lock(thd, share->semi_table_lock))); spider_param_semi_table_lock(thd, share->semi_table_lock)));
DBUG_PRINT("info",("spider first_byte = %d", first_byte)); DBUG_PRINT("info",("spider first_byte = %d", first_byte));
DBUG_PRINT("info",("spider link_status = %ld",
share->link_statuses[spider->conn_link_idx[spider->search_link_idx]]));
if ( if (
!trx_ha || !trx_ha ||
trx_ha->wait_for_reusing || trx_ha->wait_for_reusing ||
...@@ -3618,6 +3616,8 @@ int spider_check_trx_and_get_conn( ...@@ -3618,6 +3616,8 @@ int spider_check_trx_and_get_conn(
#endif #endif
} }
} else { } else {
DBUG_PRINT("info",("spider link_status = %ld",
share->link_statuses[spider->conn_link_idx[spider->search_link_idx]]));
for ( for (
roop_count = spider_conn_link_idx_next(share->link_statuses, roop_count = spider_conn_link_idx_next(share->link_statuses,
spider->conn_link_idx, -1, share->link_count, spider->conn_link_idx, -1, share->link_count,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment