Skip to content

Commit

Permalink
Cleanups and minor fixes
Browse files Browse the repository at this point in the history
- Fixed typos
- Added --core-on-failure to mysql-test-run
- More DBUG_PRINT in viosocket.c
- Don't forget CLIENT_REMEMBER_OPTIONS for compressed slave protocol
- Removed not used stage variables
  • Loading branch information
montywi committed Aug 21, 2016
1 parent 05f61ba commit 8d5a0d6
Show file tree
Hide file tree
Showing 7 changed files with 42 additions and 23 deletions.
2 changes: 1 addition & 1 deletion mysql-test/lib/My/SafeProcess.pm
Expand Up @@ -338,7 +338,7 @@ sub dump_core {
my ($self)= @_;
return if IS_WINDOWS;
my $pid= $self->{SAFE_PID};
die "Can't cet core from not started process" unless defined $pid;
die "Can't get core from not started process" unless defined $pid;
_verbose("Sending ABRT to $self");
kill ("ABRT", $pid);
return 1;
Expand Down
16 changes: 14 additions & 2 deletions mysql-test/mysql-test-run.pl
Expand Up @@ -356,6 +356,7 @@ ($)
my $opt_max_save_core= env_or_val(MTR_MAX_SAVE_CORE => 5);
my $opt_max_save_datadir= env_or_val(MTR_MAX_SAVE_DATADIR => 20);
my $opt_max_test_fail= env_or_val(MTR_MAX_TEST_FAIL => 10);
my $opt_core_on_failure= 0;

my $opt_parallel= $ENV{MTR_PARALLEL} || 1;

Expand Down Expand Up @@ -1165,6 +1166,7 @@ sub command_line_setup {
'max-save-core=i' => \$opt_max_save_core,
'max-save-datadir=i' => \$opt_max_save_datadir,
'max-test-fail=i' => \$opt_max_test_fail,
'core-on-failure' => \$opt_core_on_failure,

# Coverage, profiling etc
'gcov' => \$opt_gcov,
Expand Down Expand Up @@ -4565,7 +4567,7 @@ ($$)
}

# Try to dump core for mysqltest and all servers
foreach my $proc ($test, started(all_servers()))
foreach my $proc ($test, started(all_servers()))
{
mtr_print("Trying to dump core for $proc");
if ($proc->dump_core())
Expand Down Expand Up @@ -5231,7 +5233,9 @@ ($)
sub report_failure_and_restart ($) {
my $tinfo= shift;

if ($opt_valgrind_mysqld && ($tinfo->{'warnings'} || $tinfo->{'timeout'})) {
if ($opt_valgrind_mysqld && ($tinfo->{'warnings'} || $tinfo->{'timeout'}) &&
$opt_core_on_failure == 0)
{
# In these cases we may want valgrind report from normal termination
$tinfo->{'dont_kill_server'}= 1;
}
Expand Down Expand Up @@ -5891,6 +5895,13 @@ ($)
mtr_add_arg($args, "--sleep=%d", $opt_sleep);
}

if ( $opt_valgrind_mysqld )
{
# We are running server under valgrind, which causes some replication
# test to be much slower, notable rpl_mdev6020. Increase timeout.
mtr_add_arg($args, "--wait-for-pos-timeout=1500");
}

if ( $opt_ssl )
{
# Turn on SSL for _all_ test cases if option --ssl was used
Expand Down Expand Up @@ -6533,6 +6544,7 @@ ($)
the current test run. Defaults to
$opt_max_test_fail, set to 0 for no limit. Set
it's default with MTR_MAX_TEST_FAIL
core-in-failure Generate a core even if run server is run with valgrind
Options for valgrind
Expand Down
10 changes: 0 additions & 10 deletions sql/mysqld.cc
Expand Up @@ -9539,11 +9539,6 @@ PSI_stage_info stage_waiting_for_the_next_event_in_relay_log= { 0, "Waiting for
PSI_stage_info stage_waiting_for_the_slave_thread_to_advance_position= { 0, "Waiting for the slave SQL thread to advance position", 0};
PSI_stage_info stage_waiting_to_finalize_termination= { 0, "Waiting to finalize termination", 0};
PSI_stage_info stage_waiting_to_get_readlock= { 0, "Waiting to get readlock", 0};
PSI_stage_info stage_slave_waiting_workers_to_exit= { 0, "Waiting for workers to exit", 0};
PSI_stage_info stage_slave_waiting_worker_to_release_partition= { 0, "Waiting for Slave Worker to release partition", 0};
PSI_stage_info stage_slave_waiting_worker_to_free_events= { 0, "Waiting for Slave Workers to free pending events", 0};
PSI_stage_info stage_slave_waiting_worker_queue= { 0, "Waiting for Slave Worker queue", 0};
PSI_stage_info stage_slave_waiting_event_from_coordinator= { 0, "Waiting for an event from Coordinator", 0};
PSI_stage_info stage_binlog_waiting_background_tasks= { 0, "Waiting for background binlog tasks", 0};
PSI_stage_info stage_binlog_processing_checkpoint_notify= { 0, "Processing binlog checkpoint notification", 0};
PSI_stage_info stage_binlog_stopping_background_thread= { 0, "Stopping binlog background thread", 0};
Expand Down Expand Up @@ -9637,11 +9632,6 @@ PSI_stage_info *all_server_stages[]=
& stage_setup,
& stage_show_explain,
& stage_slave_has_read_all_relay_log,
& stage_slave_waiting_event_from_coordinator,
& stage_slave_waiting_worker_queue,
& stage_slave_waiting_worker_to_free_events,
& stage_slave_waiting_worker_to_release_partition,
& stage_slave_waiting_workers_to_exit,
& stage_sorting,
& stage_sorting_for_group,
& stage_sorting_for_order,
Expand Down
5 changes: 0 additions & 5 deletions sql/mysqld.h
Expand Up @@ -443,11 +443,6 @@ extern PSI_stage_info stage_waiting_for_the_next_event_in_relay_log;
extern PSI_stage_info stage_waiting_for_the_slave_thread_to_advance_position;
extern PSI_stage_info stage_waiting_to_finalize_termination;
extern PSI_stage_info stage_waiting_to_get_readlock;
extern PSI_stage_info stage_slave_waiting_worker_to_release_partition;
extern PSI_stage_info stage_slave_waiting_worker_to_free_events;
extern PSI_stage_info stage_slave_waiting_worker_queue;
extern PSI_stage_info stage_slave_waiting_event_from_coordinator;
extern PSI_stage_info stage_slave_waiting_workers_to_exit;
extern PSI_stage_info stage_binlog_waiting_background_tasks;
extern PSI_stage_info stage_binlog_processing_checkpoint_notify;
extern PSI_stage_info stage_binlog_stopping_background_thread;
Expand Down
2 changes: 1 addition & 1 deletion sql/slave.cc
Expand Up @@ -6063,7 +6063,7 @@ static int connect_to_master(THD* thd, MYSQL* mysql, Master_info* mi,
#endif
ulong client_flag= CLIENT_REMEMBER_OPTIONS;
if (opt_slave_compressed_protocol)
client_flag=CLIENT_COMPRESS; /* We will use compression */
client_flag|= CLIENT_COMPRESS; /* We will use compression */

mysql_options(mysql, MYSQL_OPT_CONNECT_TIMEOUT, (char *) &slave_net_timeout);
mysql_options(mysql, MYSQL_OPT_READ_TIMEOUT, (char *) &slave_net_timeout);
Expand Down
4 changes: 2 additions & 2 deletions sql/sql_class.h
Expand Up @@ -2981,12 +2981,12 @@ class THD :public Statement,
set_start_time();
start_utime= utime_after_lock= microsecond_interval_timer();
}
inline void set_time(my_hrtime_t t)
inline void set_time(my_hrtime_t t)
{
user_time= t;
set_time();
}
inline void set_time(my_time_t t, ulong sec_part)
inline void set_time(my_time_t t, ulong sec_part)
{
my_hrtime_t hrtime= { hrtime_from_time(t) + sec_part };
set_time(hrtime);
Expand Down
26 changes: 24 additions & 2 deletions vio/viosocket.c
Expand Up @@ -190,6 +190,12 @@ size_t vio_read(Vio *vio, uchar *buf, size_t size)
{
DBUG_PRINT("vio_error", ("Got error %d during read", errno));
}
#ifndef DEBUG_DATA_PACKETS
else
{
DBUG_DUMP("read_data", buf, ret);
}
#endif /* DEBUG_DATA_PACKETS */
#endif /* DBUG_OFF */
DBUG_PRINT("exit", ("%d", (int) ret));
DBUG_RETURN(ret);
Expand Down Expand Up @@ -416,6 +422,13 @@ int vio_blocking(Vio *vio, my_bool set_blocking_mode, my_bool *old_mode)
DBUG_RETURN(r);
}

/*
Check if vio is blocking
@retval 0 is not blocking
@retval 1 is blocking
*/

my_bool
vio_is_blocking(Vio * vio)
{
Expand Down Expand Up @@ -570,7 +583,9 @@ int vio_keepalive(Vio* vio, my_bool set_keep_alive)
my_bool
vio_should_retry(Vio *vio)
{
return (vio_errno(vio) == SOCKET_EINTR);
DBUG_ENTER("vio_should_retry");
DBUG_PRINT("info", ("vio_errno: %d", vio_errno(vio)));
DBUG_RETURN(vio_errno(vio) == SOCKET_EINTR);
}


Expand All @@ -595,8 +610,9 @@ int vio_close(Vio *vio)
{
int r=0;
DBUG_ENTER("vio_close");
DBUG_PRINT("enter", ("sd: %d", mysql_socket_getfd(vio->mysql_socket)));

if (vio->type != VIO_CLOSED)
if (vio->type != VIO_CLOSED)
{
DBUG_ASSERT(vio->type == VIO_TYPE_TCPIP ||
vio->type == VIO_TYPE_SOCKET ||
Expand Down Expand Up @@ -927,6 +943,7 @@ int vio_io_wait(Vio *vio, enum enum_vio_io_event event, int timeout)
my_socket sd= mysql_socket_getfd(vio->mysql_socket);
MYSQL_SOCKET_WAIT_VARIABLES(locker, state) /* no ';' */
DBUG_ENTER("vio_io_wait");
DBUG_PRINT("enter", ("timeout: %d", timeout));

/*
Note that if zero timeout, then we will not block, so we do not need to
Expand All @@ -938,7 +955,10 @@ int vio_io_wait(Vio *vio, enum enum_vio_io_event event, int timeout)
PSI_SOCKET_SELECT, timeout);
ret= my_io_wait_async(vio->async_context, event, timeout);
if (ret == 0)
{
DBUG_PRINT("info", ("timeout"));
errno= SOCKET_ETIMEDOUT;
}
END_SOCKET_WAIT(locker,timeout);
DBUG_RETURN(ret);
}
Expand Down Expand Up @@ -972,13 +992,15 @@ int vio_io_wait(Vio *vio, enum enum_vio_io_event event, int timeout)
switch ((ret= poll(&pfd, 1, timeout)))
{
case -1:
DBUG_PRINT("error", ("poll returned -1"));
/* On error, -1 is returned. */
break;
case 0:
/*
Set errno to indicate a timeout error.
(This is not compiled in on WIN32.)
*/
DBUG_PRINT("info", ("poll timeout"));
errno= SOCKET_ETIMEDOUT;
break;
default:
Expand Down

0 comments on commit 8d5a0d6

Please sign in to comment.