BUG#47027 delegates_init() failure is not user friendly (usability issue)
Function delegetas_init() did not report proper error messages when there are failures, which made it hard to know where the problem occurred. Fixed the problem by adding specific error message for every possible place that can fail. And since these failures are supposed to never happen, ask the user to report a bug if they happened.
This commit is contained in:
parent
ce15a40d71
commit
04673ee770
@ -3778,12 +3778,12 @@ static int init_server_components()
|
|||||||
unireg_abort(1);
|
unireg_abort(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* initialize delegates for extension observers */
|
/*
|
||||||
|
initialize delegates for extension observers, errors have already
|
||||||
|
been reported in the function
|
||||||
|
*/
|
||||||
if (delegates_init())
|
if (delegates_init())
|
||||||
{
|
|
||||||
sql_print_error("Initialize extension delegates failed");
|
|
||||||
unireg_abort(1);
|
unireg_abort(1);
|
||||||
}
|
|
||||||
|
|
||||||
/* need to configure logging before initializing storage engines */
|
/* need to configure logging before initializing storage engines */
|
||||||
if (opt_log_slave_updates && !opt_bin_log)
|
if (opt_log_slave_updates && !opt_bin_log)
|
||||||
|
@ -105,12 +105,20 @@ int delegates_init()
|
|||||||
transaction_delegate= new (place_trans_mem) Trans_delegate;
|
transaction_delegate= new (place_trans_mem) Trans_delegate;
|
||||||
|
|
||||||
if (!transaction_delegate->is_inited())
|
if (!transaction_delegate->is_inited())
|
||||||
|
{
|
||||||
|
sql_print_error("Initialization of transaction delegates failed. "
|
||||||
|
"Please report a bug.");
|
||||||
return 1;
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
binlog_storage_delegate= new (place_storage_mem) Binlog_storage_delegate;
|
binlog_storage_delegate= new (place_storage_mem) Binlog_storage_delegate;
|
||||||
|
|
||||||
if (!binlog_storage_delegate->is_inited())
|
if (!binlog_storage_delegate->is_inited())
|
||||||
|
{
|
||||||
|
sql_print_error("Initialization binlog storage delegates failed. "
|
||||||
|
"Please report a bug.");
|
||||||
return 1;
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef HAVE_REPLICATION
|
#ifdef HAVE_REPLICATION
|
||||||
void *place_transmit_mem= transmit_mem.data;
|
void *place_transmit_mem= transmit_mem.data;
|
||||||
@ -119,16 +127,29 @@ int delegates_init()
|
|||||||
binlog_transmit_delegate= new (place_transmit_mem) Binlog_transmit_delegate;
|
binlog_transmit_delegate= new (place_transmit_mem) Binlog_transmit_delegate;
|
||||||
|
|
||||||
if (!binlog_transmit_delegate->is_inited())
|
if (!binlog_transmit_delegate->is_inited())
|
||||||
|
{
|
||||||
|
sql_print_error("Initialization of binlog transmit delegates failed. "
|
||||||
|
"Please report a bug.");
|
||||||
return 1;
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
binlog_relay_io_delegate= new (place_relay_io_mem) Binlog_relay_IO_delegate;
|
binlog_relay_io_delegate= new (place_relay_io_mem) Binlog_relay_IO_delegate;
|
||||||
|
|
||||||
if (!binlog_relay_io_delegate->is_inited())
|
if (!binlog_relay_io_delegate->is_inited())
|
||||||
|
{
|
||||||
|
sql_print_error("Initialization binlog relay IO delegates failed. "
|
||||||
|
"Please report a bug.");
|
||||||
return 1;
|
return 1;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (pthread_key_create(&RPL_TRANS_BINLOG_INFO, NULL))
|
if (pthread_key_create(&RPL_TRANS_BINLOG_INFO, NULL))
|
||||||
|
{
|
||||||
|
sql_print_error("Error while creating pthread specific data key for replication. "
|
||||||
|
"Please report a bug.");
|
||||||
return 1;
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user