diff options
Diffstat (limited to 'sql/mysqld.cc')
-rw-r--r-- | sql/mysqld.cc | 102 |
1 files changed, 52 insertions, 50 deletions
diff --git a/sql/mysqld.cc b/sql/mysqld.cc index d48171d49be..c56e98b305e 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -151,16 +151,21 @@ SHOW_COMP_OPTION have_berkeley_db=SHOW_OPTION_YES; #else SHOW_COMP_OPTION have_berkeley_db=SHOW_OPTION_NO; #endif -#ifdef HAVE_GEMENI_DB -SHOW_COMP_OPTION have_gemeni=SHOW_OPTION_YES; +#ifdef HAVE_GEMINI_DB +SHOW_COMP_OPTION have_gemini=SHOW_OPTION_YES; #else -SHOW_COMP_OPTION have_gemeni=SHOW_OPTION_NO; +SHOW_COMP_OPTION have_gemini=SHOW_OPTION_NO; #endif #ifdef HAVE_INNOBASE_DB SHOW_COMP_OPTION have_innobase=SHOW_OPTION_YES; #else SHOW_COMP_OPTION have_innobase=SHOW_OPTION_NO; #endif +#ifndef NO_ISAM +SHOW_COMP_OPTION have_isam=SHOW_OPTION_YES; +#else +SHOW_COMP_OPTION have_isam=SHOW_OPTION_NO; +#endif #ifdef USE_RAID SHOW_COMP_OPTION have_raid=SHOW_OPTION_YES; #else @@ -1077,26 +1082,26 @@ inline static __volatile__ void trace_stack() uchar **stack_bottom; uchar** ebp; LINT_INIT(ebp); - fprintf(stderr, "Attemping backtrace, please send the info below to\ - bugs@lists.mysql.com. If you see no messages after this, something \ - went terribly wrong - report this anyway\n"); + fprintf(stderr, "Attemping backtrace, please send the info below to \ +bugs@lists.mysql.com. If you see no messages after this, something \ +went terribly wrong - report this anyway\n"); THD* thd = current_thd; uint frame_count = 0; __asm __volatile__ ("movl %%ebp,%0" :"=r"(ebp) :"r"(ebp)); - if(!ebp) - { - fprintf(stderr, "frame pointer (ebp) is NULL, did you compile with \ - -fomit-frame-pointer? Aborting backtrace\n"); - return; - } - if(!thd) - { - fprintf(stderr, "Cannot determine thread, ebp=%p, aborting backtrace\n", - ebp); - return; - } + if (!ebp) + { + fprintf(stderr, "frame pointer (ebp) is NULL, did you compile with \ +-fomit-frame-pointer? Aborting backtrace\n"); + return; + } + if (!thd) + { + fprintf(stderr, "Cannot determine thread, ebp=%p, aborting backtrace\n", + ebp); + return; + } stack_bottom = (uchar**)thd->thread_stack; if(ebp > stack_bottom || ebp < stack_bottom - thread_stack) { @@ -1107,20 +1112,20 @@ inline static __volatile__ void trace_stack() fprintf(stderr, "stack range sanity check, ok, backtrace follows\n"); - while(ebp < stack_bottom) + while (ebp < stack_bottom) + { + uchar** new_ebp = (uchar**)*ebp; + fprintf(stderr, "%p\n", frame_count == SIGRETURN_FRAME_COUNT ? + *(ebp+17) : *(ebp+1)); + if (new_ebp <= ebp ) { - uchar** new_ebp = (uchar**)*ebp; - fprintf(stderr, "%p\n", frame_count == SIGRETURN_FRAME_COUNT ? - *(ebp+17) : *(ebp+1)); - if(new_ebp <= ebp ) - { - fprintf(stderr, "New value of ebp failed sanity check\ + fprintf(stderr, "New value of ebp failed sanity check\ terminating backtrace\n"); - return; - } - ebp = new_ebp; - ++frame_count; + return; } + ebp = new_ebp; + ++frame_count; + } fprintf(stderr, "stack trace successful\n"); } @@ -1133,31 +1138,27 @@ static sig_handler handle_segfault(int sig) // but since we have got SIGSEGV already, things are a mess // so not having the mutex is not as bad as possibly using a buggy // mutex - so we keep things simple - if(segfaulted) + if (segfaulted) return; segfaulted = 1; fprintf(stderr,"\ -mysqld got signal %s in thread %d; \n\ +mysqld got signal %d;\n\ The manual section 'Debugging a MySQL server' tells you how to use a \n\ debugger on the core file to produce a backtrace that may help you find out\n\ -why mysqld died\n",sys_siglist[sig],getpid()); -#if defined(HAVE_LINUXTHREADS) && defined(__i386__) +why mysqld died\n",sig); +#if defined(HAVE_LINUXTHREADS) +#ifdef __i386__ trace_stack(); -#endif -#ifdef HAVE_LINUXTHREADS +#endif /* __i386__ */ if (test_flags & TEST_CORE_ON_SIGNAL) write_core(sig); - else - exit(1); -#else - exit(1); /* abort everything */ -#endif +#endif /* HAVE_LINUXTHREADS */ + exit(1); } -#ifdef HAVE_LINUXTHREADS - /* Produce a core for the thread */ +#ifdef HAVE_LINUXTHREADS static sig_handler write_core(int sig) { signal(sig, SIG_DFL); @@ -1756,7 +1757,7 @@ The server will not act as a slave"); if (master_host) { pthread_t hThread; - if(!opt_skip_slave_start && + if (!opt_skip_slave_start && pthread_create(&hThread, &connection_attrib, handle_slave, 0)) sql_print_error("Warning: Can't create thread to handle slave"); else if(opt_skip_slave_start) @@ -2623,8 +2624,9 @@ struct show_var_st init_vars[]= { {"flush", (char*) &myisam_flush, SHOW_MY_BOOL}, {"flush_time", (char*) &flush_time, SHOW_LONG}, {"have_bdb", (char*) &have_berkeley_db, SHOW_HAVE}, - {"have_gemeni", (char*) &have_gemeni, SHOW_HAVE}, + {"have_gemini", (char*) &have_gemini, SHOW_HAVE}, {"have_innobase", (char*) &have_innobase, SHOW_HAVE}, + {"have_isam", (char*) &have_isam, SHOW_HAVE}, {"have_raid", (char*) &have_raid, SHOW_HAVE}, {"have_ssl", (char*) &have_ssl, SHOW_HAVE}, {"init_file", (char*) &opt_init_file, SHOW_CHAR_PTR}, @@ -3101,7 +3103,7 @@ static void get_options(int argc,char **argv) { char* key = optarg,*p, *val; p = strstr(optarg, "->"); - if(!p) + if (!p) { fprintf(stderr, "bad syntax in replicate-rewrite-db - missing ->\n"); @@ -3118,7 +3120,7 @@ static void get_options(int argc,char **argv) *val = 0; val += 2; while(*val && isspace(*val)) *val++; - if(!*val) + if (!*val) { fprintf(stderr, "bad syntax in replicate-rewrite-db - empty TO db\n"); @@ -3144,7 +3146,7 @@ static void get_options(int argc,char **argv) } case (int)OPT_REPLICATE_DO_TABLE: { - if(!do_table_inited) + if (!do_table_inited) init_table_rule_hash(&replicate_do_table, &do_table_inited); if(add_table_rule(&replicate_do_table, optarg)) { @@ -3156,7 +3158,7 @@ static void get_options(int argc,char **argv) } case (int)OPT_REPLICATE_WILD_DO_TABLE: { - if(!wild_do_table_inited) + if (!wild_do_table_inited) init_table_rule_array(&replicate_wild_do_table, &wild_do_table_inited); if(add_wild_table_rule(&replicate_wild_do_table, optarg)) @@ -3169,7 +3171,7 @@ static void get_options(int argc,char **argv) } case (int)OPT_REPLICATE_WILD_IGNORE_TABLE: { - if(!wild_ignore_table_inited) + if (!wild_ignore_table_inited) init_table_rule_array(&replicate_wild_ignore_table, &wild_ignore_table_inited); if(add_wild_table_rule(&replicate_wild_ignore_table, optarg)) @@ -3182,7 +3184,7 @@ static void get_options(int argc,char **argv) } case (int)OPT_REPLICATE_IGNORE_TABLE: { - if(!ignore_table_inited) + if (!ignore_table_inited) init_table_rule_hash(&replicate_ignore_table, &ignore_table_inited); if(add_table_rule(&replicate_ignore_table, optarg)) { |