Skip to content

Commit dd31e5c

Browse files
committed
MDEV-9593 - Print the real version in the error log
1 parent 670760d commit dd31e5c

File tree

3 files changed

+30
-23
lines changed

3 files changed

+30
-23
lines changed

sql/mysqld.cc

Lines changed: 28 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -4340,11 +4340,23 @@ static int init_common_variables()
43404340

43414341
if (get_options(&remaining_argc, &remaining_argv))
43424342
return 1;
4343-
set_server_version();
4343+
if (IS_SYSVAR_AUTOSIZE(&server_version_ptr))
4344+
set_server_version(server_version, sizeof(server_version));
43444345

43454346
if (!opt_abort)
4346-
sql_print_information("%s (mysqld %s) starting as process %lu ...",
4347-
my_progname, server_version, (ulong) getpid());
4347+
{
4348+
if (IS_SYSVAR_AUTOSIZE(&server_version_ptr))
4349+
sql_print_information("%s (mysqld %s) starting as process %lu ...",
4350+
my_progname, server_version, (ulong) getpid());
4351+
else
4352+
{
4353+
char real_server_version[SERVER_VERSION_LENGTH];
4354+
set_server_version(real_server_version, sizeof(real_server_version));
4355+
sql_print_information("%s (mysqld %s as %s) starting as process %lu ...",
4356+
my_progname, real_server_version, server_version,
4357+
(ulong) getpid());
4358+
}
4359+
}
43484360

43494361
#ifndef EMBEDDED_LIBRARY
43504362
if (opt_abort && !opt_verbose)
@@ -8571,7 +8583,8 @@ static bool add_many_options(DYNAMIC_ARRAY *options, my_option *list,
85718583
#ifndef EMBEDDED_LIBRARY
85728584
static void print_version(void)
85738585
{
8574-
set_server_version();
8586+
if (IS_SYSVAR_AUTOSIZE(&server_version_ptr))
8587+
set_server_version(server_version, sizeof(server_version));
85758588

85768589
printf("%s Ver %s for %s on %s (%s)\n",my_progname,
85778590
server_version,SYSTEM_TYPE,MACHINE_TYPE, MYSQL_COMPILATION_COMMENT);
@@ -9680,24 +9693,17 @@ static int get_options(int *argc_ptr, char ***argv_ptr)
96809693
(MYSQL_SERVER_SUFFIX is set by the compilation environment)
96819694
*/
96829695

9683-
void set_server_version(void)
9684-
{
9685-
if (!IS_SYSVAR_AUTOSIZE(&server_version_ptr))
9686-
return;
9687-
char *version_end= server_version+sizeof(server_version)-1;
9688-
char *end= strxnmov(server_version, sizeof(server_version)-1,
9689-
MYSQL_SERVER_VERSION,
9690-
MYSQL_SERVER_SUFFIX_STR, NullS);
9691-
#ifdef EMBEDDED_LIBRARY
9692-
end= strnmov(end, "-embedded", (version_end-end));
9693-
#endif
9694-
#ifndef DBUG_OFF
9695-
if (!strstr(MYSQL_SERVER_SUFFIX_STR, "-debug"))
9696-
end= strnmov(end, "-debug", (version_end-end));
9697-
#endif
9698-
if (opt_log || global_system_variables.sql_log_slow || opt_bin_log)
9699-
strnmov(end, "-log", (version_end-end)); // This may slow down system
9700-
*end= 0;
9696+
void set_server_version(char *buf, size_t size)
9697+
{
9698+
bool is_log= opt_log || global_system_variables.sql_log_slow || opt_bin_log;
9699+
bool is_debug= IF_DBUG(!strstr(MYSQL_SERVER_SUFFIX_STR, "-debug"), 0);
9700+
strxnmov(buf, size - 1,
9701+
MYSQL_SERVER_VERSION,
9702+
MYSQL_SERVER_SUFFIX_STR,
9703+
IF_EMBEDDED("-embedded", ""),
9704+
is_debug ? "-debug" : "",
9705+
is_log ? "-log" : "",
9706+
NullS);
97019707
}
97029708

97039709

sql/mysqld.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -774,7 +774,7 @@ inline void dec_thread_running()
774774
thread_safe_decrement32(&thread_running);
775775
}
776776

777-
extern void set_server_version(void);
777+
extern void set_server_version(char *buf, size_t size);
778778

779779
#if defined(MYSQL_DYNAMIC_PLUGIN) && defined(_WIN32)
780780
extern "C" THD *_current_thd_noinline();

sql/signal_handler.cc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ extern "C" sig_handler handle_fatal_signal(int sig)
107107
"diagnose the problem, but since we have already crashed, \n"
108108
"something is definitely wrong and this may fail.\n\n");
109109

110+
set_server_version(server_version, sizeof(server_version));
110111
my_safe_printf_stderr("Server version: %s\n", server_version);
111112

112113
if (dflt_key_cache)

0 commit comments

Comments
 (0)