temporary commit to pull Monty's changes

parent d2b16298
...@@ -51,6 +51,16 @@ ...@@ -51,6 +51,16 @@
#endif #endif
#endif /* _WIN32... */ #endif /* _WIN32... */
/* sometimes we want to make sure that the variable is not put into
a register in debugging mode so we can see its value in the core
*/
#ifndef DBUG_OFF
#define dbug_volatile volatile
#else
#define dbug_volatile
#endif
/* /*
The macros below are borrowed from include/linux/compiler.h in the The macros below are borrowed from include/linux/compiler.h in the
Linux kernel. Use them to indicate the likelyhood of the truthfulness Linux kernel. Use them to indicate the likelyhood of the truthfulness
......
...@@ -27,7 +27,10 @@ ...@@ -27,7 +27,10 @@
my_off_t my_b_append_tell(IO_CACHE* info) my_off_t my_b_append_tell(IO_CACHE* info)
{ {
my_off_t res; /* prevent optimizer from putting res in a register when debugging
we need this to be able to see the value of res when the assert fails
*/
dbug_volatile my_off_t res;
/* we need to lock the append buffer mutex to keep flush_io_cache() /* we need to lock the append buffer mutex to keep flush_io_cache()
from messing with the variables that we need in order to provide the from messing with the variables that we need in order to provide the
answer to the question. answer to the question.
...@@ -35,8 +38,11 @@ my_off_t my_b_append_tell(IO_CACHE* info) ...@@ -35,8 +38,11 @@ my_off_t my_b_append_tell(IO_CACHE* info)
#ifdef THREAD #ifdef THREAD
pthread_mutex_lock(&info->append_buffer_lock); pthread_mutex_lock(&info->append_buffer_lock);
#endif #endif
/* save the value of my_tell in res so we can see it when studying
coredump
*/
DBUG_ASSERT(info->end_of_file - (info->append_read_pos-info->write_buffer) DBUG_ASSERT(info->end_of_file - (info->append_read_pos-info->write_buffer)
== my_tell(info->file,MYF(0))); == (res=my_tell(info->file,MYF(0))));
res = info->end_of_file + (info->write_pos-info->append_read_pos); res = info->end_of_file + (info->write_pos-info->append_read_pos);
#ifdef THREAD #ifdef THREAD
pthread_mutex_unlock(&info->append_buffer_lock); pthread_mutex_unlock(&info->append_buffer_lock);
......
...@@ -1418,16 +1418,19 @@ void item_user_lock_release(ULL *ull) ...@@ -1418,16 +1418,19 @@ void item_user_lock_release(ULL *ull)
if (mysql_bin_log.is_open()) if (mysql_bin_log.is_open())
{ {
THD *thd = current_thd; THD *thd = current_thd;
uint save_query_length;
char buf[256]; char buf[256];
String tmp(buf,sizeof(buf)); String tmp(buf,sizeof(buf));
tmp.length(0); tmp.length(0);
tmp.append("DO RELEASE_LOCK(\""); tmp.append("DO RELEASE_LOCK(\"");
tmp.append(ull->key,ull->key_length); tmp.append(ull->key,ull->key_length);
tmp.append("\")"); tmp.append("\")");
save_query_length=thd->query_length;
thd->query_length=tmp.length(); thd->query_length=tmp.length();
Query_log_event qev(thd,tmp.ptr()); Query_log_event qev(thd,tmp.ptr());
qev.error_code=0; // this query is always safe to run on slave qev.error_code=0; // this query is always safe to run on slave
mysql_bin_log.write(&qev); mysql_bin_log.write(&qev);
thd->query_length=save_query_length;
} }
if (--ull->count) if (--ull->count)
pthread_cond_signal(&ull->cond); pthread_cond_signal(&ull->cond);
......
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