Commit 0ec804e5 authored by Satya B's avatar Satya B

merge to mysql-5.1-bugteam branch

parents 77f73116 915d1c4d
...@@ -4,6 +4,10 @@ main.ctype_gbk_binlog # Bug#46010: main.ctype_gbk_binlog fail ...@@ -4,6 +4,10 @@ main.ctype_gbk_binlog # Bug#46010: main.ctype_gbk_binlog fail
rpl.rpl_row_create_table # Bug#45576: rpl_row_create_table fails on PB2 rpl.rpl_row_create_table # Bug#45576: rpl_row_create_table fails on PB2
rpl.rpl_extraColmaster_myisam # Bug#46013: rpl_extraColmaster_myisam fails on pb2 rpl.rpl_extraColmaster_myisam # Bug#46013: rpl_extraColmaster_myisam fails on pb2
rpl.rpl_stm_reset_slave # Bug#46014: rpl_stm_reset_slave crashes the server sporadically in pb2 rpl.rpl_stm_reset_slave # Bug#46014: rpl_stm_reset_slave crashes the server sporadically in pb2
rpl_extraCol_myisam # Bug#40796 rpl.rpl_extraCol_myisam # Bug#40796
rpl_extraColmaster_innodb # Bug#40796 rpl.rpl_extraColmaster_innodb # Bug#40796
rpl_extraCol_innodb # Bug#40796 rpl.rpl_extraCol_innodb # Bug#40796
rpl_ndb.rpl_ndb_log # Bug#38998
rpl.rpl_innodb_bug28430 # Bug#46029
rpl.rpl_row_basic_3innodb # Bug#45243
rpl.rpl_truncate_3innodb # Bug#46030
...@@ -89,7 +89,7 @@ static void die(const char* fmt, ...) ...@@ -89,7 +89,7 @@ static void die(const char* fmt, ...)
} }
static void kill_child (void) static void kill_child(void)
{ {
int status= 0; int status= 0;
...@@ -119,7 +119,7 @@ static void kill_child (void) ...@@ -119,7 +119,7 @@ static void kill_child (void)
} }
static void handle_abort (int sig) extern "C" void handle_abort(int sig)
{ {
message("Got signal %d, child_pid: %d, sending ABRT", sig, child_pid); message("Got signal %d, child_pid: %d, sending ABRT", sig, child_pid);
...@@ -128,8 +128,8 @@ static void handle_abort (int sig) ...@@ -128,8 +128,8 @@ static void handle_abort (int sig)
} }
} }
static void handle_signal (int sig) extern "C" void handle_signal(int sig)
{ {
message("Got signal %d, child_pid: %d", sig, child_pid); message("Got signal %d, child_pid: %d", sig, child_pid);
terminated= 1; terminated= 1;
...@@ -152,7 +152,7 @@ int main(int argc, char* const argv[] ) ...@@ -152,7 +152,7 @@ int main(int argc, char* const argv[] )
pid_t own_pid= getpid(); pid_t own_pid= getpid();
pid_t parent_pid= getppid(); pid_t parent_pid= getppid();
bool nocore = false; bool nocore = false;
/* Install signal handlers */ /* Install signal handlers */
signal(SIGTERM, handle_signal); signal(SIGTERM, handle_signal);
signal(SIGINT, handle_signal); signal(SIGINT, handle_signal);
...@@ -232,10 +232,11 @@ int main(int argc, char* const argv[] ) ...@@ -232,10 +232,11 @@ int main(int argc, char* const argv[] )
message("setrlimit failed, errno=%d", errno); message("setrlimit failed, errno=%d", errno);
} }
} }
// Signal that child is ready // Signal that child is ready
buf= 37; buf= 37;
write(pfd[1], &buf, 1); if ((write(pfd[1], &buf, 1)) < 1)
die("Failed to signal that child is ready");
// Close write end // Close write end
close(pfd[1]); close(pfd[1]);
...@@ -246,8 +247,10 @@ int main(int argc, char* const argv[] ) ...@@ -246,8 +247,10 @@ int main(int argc, char* const argv[] )
close(pfd[1]); // Close unused write end close(pfd[1]); // Close unused write end
// Wait for child to signal it's ready // Wait for child to signal it's ready
read(pfd[0], &buf, 1); if ((read(pfd[0], &buf, 1)) < 1)
if(buf != 37) die("Failed to read signal from child");
if (buf != 37)
die("Didn't get 37 from pipe"); die("Didn't get 37 from pipe");
close(pfd[0]); // Close read end close(pfd[0]); // Close read end
...@@ -272,7 +275,7 @@ int main(int argc, char* const argv[] ) ...@@ -272,7 +275,7 @@ int main(int argc, char* const argv[] )
if (WIFEXITED(status)) if (WIFEXITED(status))
{ {
// Process has exited, collect return status // Process has exited, collect return status
int ret_code= WEXITSTATUS(status); ret_code= WEXITSTATUS(status);
message("Child exit: %d", ret_code); message("Child exit: %d", ret_code);
// Exit with exit status of the child // Exit with exit status of the child
exit(ret_code); exit(ret_code);
...@@ -287,6 +290,6 @@ int main(int argc, char* const argv[] ) ...@@ -287,6 +290,6 @@ int main(int argc, char* const argv[] )
} }
kill_child(); kill_child();
exit(1); return 1;
} }
...@@ -973,6 +973,7 @@ bool fix_fields_part_func(THD *thd, Item* func_expr, TABLE *table, ...@@ -973,6 +973,7 @@ bool fix_fields_part_func(THD *thd, Item* func_expr, TABLE *table,
save_use_only_table_context= thd->lex->use_only_table_context; save_use_only_table_context= thd->lex->use_only_table_context;
thd->lex->use_only_table_context= TRUE; thd->lex->use_only_table_context= TRUE;
thd->lex->current_select->cur_pos_in_select_list= UNDEF_POS;
error= func_expr->fix_fields(thd, (Item**)&func_expr); error= func_expr->fix_fields(thd, (Item**)&func_expr);
......
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