Browse Source

auto-merge 5.1-bugteam (local) --> 5.1-bugteam

pull/374/head
Alfranio Correia 17 years ago
parent
commit
9ce928de59
  1. 2
      mysql-test/suite/rpl/r/rpl_slave_load_tmpdir_not_exist.result
  2. 4
      mysql-test/suite/rpl/t/rpl_slave_load_tmpdir_not_exist.test
  3. 2
      mysys/mf_format.c
  4. 13
      sql/rpl_rli.cc
  5. 11
      sql/slave.cc

2
mysql-test/suite/rpl/r/rpl_slave_load_tmpdir_not_exist.result

@ -3,4 +3,4 @@ MASTER_CONNECT_RETRY=1,
MASTER_HOST='127.0.0.1',
MASTER_PORT=MASTER_MYPORT;
START SLAVE;
Unable to use slave's temporary directory ../../../error - Can't read dir of '../../../error' (Errcode: 2)
12

4
mysql-test/suite/rpl/t/rpl_slave_load_tmpdir_not_exist.test

@ -20,5 +20,5 @@ eval CHANGE MASTER TO MASTER_USER='root',
START SLAVE;
source include/wait_for_slave_sql_to_stop.inc;
let $error=query_get_value("show slave status", Last_SQL_Error, 1);
echo $error;
let $errno=query_get_value("show slave status", Last_SQL_Errno, 1);
echo $errno;

2
mysys/mf_format.c

@ -79,7 +79,7 @@ char * fn_format(char * to, const char *name, const char *dir,
/* To long path, return original or NULL */
size_t tmp_length;
if (flag & MY_SAFE_PATH)
return NullS;
DBUG_RETURN(NullS);
tmp_length= strlength(startpos);
DBUG_PRINT("error",("dev: '%s' ext: '%s' length: %u",dev,ext,
(uint) length));

13
sql/rpl_rli.cc

@ -104,9 +104,16 @@ int init_relay_log_info(Relay_log_info* rli,
rli->tables_to_lock= 0;
rli->tables_to_lock_count= 0;
fn_format(rli->slave_patternload_file, PREFIX_SQL_LOAD, slave_load_tmpdir, "",
MY_PACK_FILENAME | MY_UNPACK_FILENAME |
MY_RETURN_REAL_PATH);
char pattern[FN_REFLEN];
if (fn_format(pattern, PREFIX_SQL_LOAD, slave_load_tmpdir, "",
MY_SAFE_PATH | MY_RETURN_REAL_PATH) == NullS)
{
pthread_mutex_unlock(&rli->data_lock);
sql_print_error("Unable to use slave's temporary directory %s",
slave_load_tmpdir);
DBUG_RETURN(1);
}
unpack_filename(rli->slave_patternload_file, pattern);
rli->slave_patternload_file_size= strlen(rli->slave_patternload_file);
/*

11
sql/slave.cc

@ -2668,13 +2668,20 @@ err:
LOAD DATA INFILE.
*/
static
int check_temp_dir(char* tmp_dir, char *tmp_file)
int check_temp_dir(char* tmp_file)
{
int fd;
MY_DIR *dirp;
char tmp_dir[FN_REFLEN];
size_t tmp_dir_size;
DBUG_ENTER("check_temp_dir");
/*
Get the directory from the temporary file.
*/
dirname_part(tmp_dir, tmp_file, &tmp_dir_size);
/*
Check if the directory exists.
*/
@ -2830,7 +2837,7 @@ log '%s' at position %s, relay log '%s' position: %s", RPL_LOG_NAME,
llstr(rli->group_master_log_pos,llbuff),rli->group_relay_log_name,
llstr(rli->group_relay_log_pos,llbuff1));
if (check_temp_dir(slave_load_tmpdir, rli->slave_patternload_file))
if (check_temp_dir(rli->slave_patternload_file))
{
rli->report(ERROR_LEVEL, thd->main_da.sql_errno(),
"Unable to use slave's temporary directory %s - %s",

Loading…
Cancel
Save