Fixed timing failure in myisam-metadata.test
mysql-test/include/wait_show_condition.inc: Print failing statement if timeout mysql-test/r/myisam-metadata.result: Updated DBUG_SYNC mysql-test/t/myisam-metadata.test: Updated DBUG_SYNC. Removed wait_show_condtion, as this is not needed when we use DBUG_SYNC This should fix timing issues with the test mysys/thr_mutex.c: Added comments sql/sql_acl.cc: atoi -> atoll() (Safety) storage/myisam/ha_myisam.cc: Send signal before mi_repair_by_sort.
This commit is contained in:
parent
64e53a0f81
commit
5cf5a9a1e8
@ -127,5 +127,6 @@ if (!$found)
|
|||||||
echo # field : $field;
|
echo # field : $field;
|
||||||
echo # condition : $condition;
|
echo # condition : $condition;
|
||||||
echo # max_run_time : $max_run_time;
|
echo # max_run_time : $max_run_time;
|
||||||
|
eval $show_statement;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@ a VARCHAR(100),
|
|||||||
INDEX(a)
|
INDEX(a)
|
||||||
) ENGINE=MyISAM;
|
) ENGINE=MyISAM;
|
||||||
ALTER TABLE t1 DISABLE KEYS;
|
ALTER TABLE t1 DISABLE KEYS;
|
||||||
SET debug_sync= 'myisam_after_repair_by_sort SIGNAL waiting WAIT_FOR go';
|
SET debug_sync= 'myisam_before_repair_by_sort SIGNAL waiting WAIT_FOR go';
|
||||||
ALTER TABLE t1 ENABLE KEYS;
|
ALTER TABLE t1 ENABLE KEYS;
|
||||||
SET debug_sync= 'now WAIT_FOR waiting';
|
SET debug_sync= 'now WAIT_FOR waiting';
|
||||||
SET debug_sync= 'now SIGNAL go';
|
SET debug_sync= 'now SIGNAL go';
|
||||||
|
@ -30,16 +30,11 @@ while ($1)
|
|||||||
--enable_query_log
|
--enable_query_log
|
||||||
|
|
||||||
--connect(con1,localhost,root,,)
|
--connect(con1,localhost,root,,)
|
||||||
SET debug_sync= 'myisam_after_repair_by_sort SIGNAL waiting WAIT_FOR go';
|
SET debug_sync= 'myisam_before_repair_by_sort SIGNAL waiting WAIT_FOR go';
|
||||||
send
|
send
|
||||||
ALTER TABLE t1 ENABLE KEYS;
|
ALTER TABLE t1 ENABLE KEYS;
|
||||||
|
|
||||||
--connection default
|
--connection default
|
||||||
--let $wait_timeout=60
|
|
||||||
--let $show_statement= SHOW PROCESSLIST
|
|
||||||
--let $field= State
|
|
||||||
--let $condition= = 'Repair by sorting'
|
|
||||||
--source include/wait_show_condition.inc
|
|
||||||
SET debug_sync= 'now WAIT_FOR waiting';
|
SET debug_sync= 'now WAIT_FOR waiting';
|
||||||
SET debug_sync= 'now SIGNAL go';
|
SET debug_sync= 'now SIGNAL go';
|
||||||
|
|
||||||
|
@ -132,7 +132,7 @@ void safe_mutex_global_init(void)
|
|||||||
|
|
||||||
#ifdef SAFE_MUTEX_DETECT_DESTROY
|
#ifdef SAFE_MUTEX_DETECT_DESTROY
|
||||||
safe_mutex_create_root= 0;
|
safe_mutex_create_root= 0;
|
||||||
#endif
|
#endif /* SAFE_MUTEX_DETECT_DESTROY */
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void remove_from_active_list(safe_mutex_t *mp)
|
static inline void remove_from_active_list(safe_mutex_t *mp)
|
||||||
@ -553,7 +553,7 @@ int safe_cond_timedwait(pthread_cond_t *cond, safe_mutex_t *mp,
|
|||||||
"on %s at %s, line %d\n",
|
"on %s at %s, line %d\n",
|
||||||
error, errno, mp->name, file, line);
|
error, errno, mp->name, file, line);
|
||||||
}
|
}
|
||||||
#endif
|
#endif /* EXTRA_DEBUG */
|
||||||
pthread_mutex_lock(&mp->global);
|
pthread_mutex_lock(&mp->global);
|
||||||
/* Restore state as it was before */
|
/* Restore state as it was before */
|
||||||
mp->thread= save_state.thread;
|
mp->thread= save_state.thread;
|
||||||
@ -612,7 +612,7 @@ int safe_mutex_destroy(safe_mutex_t *mp, const char *file, uint line)
|
|||||||
error=1;
|
error=1;
|
||||||
if (pthread_mutex_destroy(&mp->mutex))
|
if (pthread_mutex_destroy(&mp->mutex))
|
||||||
error=1;
|
error=1;
|
||||||
#endif
|
#endif /* __WIN__ */
|
||||||
mp->file= 0; /* Mark destroyed */
|
mp->file= 0; /* Mark destroyed */
|
||||||
|
|
||||||
#ifdef SAFE_MUTEX_DETECT_DESTROY
|
#ifdef SAFE_MUTEX_DETECT_DESTROY
|
||||||
@ -838,7 +838,7 @@ static void print_deadlock_warning(safe_mutex_t *new_mutex,
|
|||||||
DBUG_VOID_RETURN;
|
DBUG_VOID_RETURN;
|
||||||
}
|
}
|
||||||
|
|
||||||
#elif defined(MY_PTHREAD_FASTMUTEX)
|
#elif defined(MY_PTHREAD_FASTMUTEX) /* !SAFE_MUTEX_DEFINED */
|
||||||
|
|
||||||
static ulong mutex_delay(ulong delayloops)
|
static ulong mutex_delay(ulong delayloops)
|
||||||
{
|
{
|
||||||
@ -922,4 +922,4 @@ void fastmutex_global_init(void)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* defined(MY_PTHREAD_FASTMUTEX) */
|
#endif /* defined(MY_PTHREAD_FASTMUTEX) && defined(SAFE_MUTEX_DEFINED) */
|
||||||
|
@ -968,7 +968,7 @@ static my_bool acl_load(THD *thd, TABLE_LIST *tables)
|
|||||||
{
|
{
|
||||||
/* Starting from 5.0.3 we have max_user_connections field */
|
/* Starting from 5.0.3 we have max_user_connections field */
|
||||||
ptr= get_field(thd->mem_root, table->field[next_field++]);
|
ptr= get_field(thd->mem_root, table->field[next_field++]);
|
||||||
user.user_resource.user_conn= ptr ? atoi(ptr) : 0;
|
user.user_resource.user_conn= ptr ? atoll(ptr) : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (table->s->fields >= 41)
|
if (table->s->fields >= 41)
|
||||||
|
@ -1126,9 +1126,9 @@ int ha_myisam::repair(THD *thd, HA_CHECK ¶m, bool do_optimize)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
thd_proc_info(thd, "Repair by sorting");
|
thd_proc_info(thd, "Repair by sorting");
|
||||||
|
DEBUG_SYNC(thd, "myisam_before_repair_by_sort");
|
||||||
error = mi_repair_by_sort(¶m, file, fixed_name,
|
error = mi_repair_by_sort(¶m, file, fixed_name,
|
||||||
test(param.testflag & T_QUICK));
|
test(param.testflag & T_QUICK));
|
||||||
DEBUG_SYNC(thd, "myisam_after_repair_by_sort");
|
|
||||||
}
|
}
|
||||||
if (error && file->create_unique_index_by_sort &&
|
if (error && file->create_unique_index_by_sort &&
|
||||||
share->state.dupp_key != MAX_KEY)
|
share->state.dupp_key != MAX_KEY)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user