mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Fix for
Bug #1392 "On Win, slave leaves one temp file after successf. replicating LOAD DATA INFILE" Windows-specific bug (we forgot to close a file before deleting it). Patch written by me, tested by Miguel (thanks!) and it works. sql/log.cc: changed the comment to mean the truth sql/log_event.cc: When you finish replicating LOAD DATA INFILE, close the SQL_LOADxxx.data file before deleting it, or Windows will refuse to delete. No need to do the same thing for the SQL_LOADxxx.data file, it's not opened at this moment.
This commit is contained in:
@ -870,7 +870,7 @@ void MYSQL_LOG::new_file(bool need_lock)
|
|||||||
close(LOG_CLOSE_TO_BE_OPENED);
|
close(LOG_CLOSE_TO_BE_OPENED);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Note that at this point, log_type == LOG_CLOSED (important for is_open()).
|
Note that at this point, log_type != LOG_CLOSED (important for is_open()).
|
||||||
*/
|
*/
|
||||||
|
|
||||||
open(old_name, save_log_type, new_name_ptr, index_file_name, io_cache_type,
|
open(old_name, save_log_type, new_name_ptr, index_file_name, io_cache_type,
|
||||||
|
@ -2382,6 +2382,16 @@ int Execute_load_log_event::exec_event(struct st_relay_log_info* rli)
|
|||||||
}
|
}
|
||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
|
We have an open file descriptor to the .info file; we need to close it
|
||||||
|
or Windows will refuse to delete the file in my_delete().
|
||||||
|
*/
|
||||||
|
if (fd >= 0)
|
||||||
|
{
|
||||||
|
my_close(fd, MYF(0));
|
||||||
|
end_io_cache(&file);
|
||||||
|
fd= -1;
|
||||||
|
}
|
||||||
(void) my_delete(fname, MYF(MY_WME));
|
(void) my_delete(fname, MYF(MY_WME));
|
||||||
memcpy(p, ".data", 6);
|
memcpy(p, ".data", 6);
|
||||||
(void) my_delete(fname, MYF(MY_WME));
|
(void) my_delete(fname, MYF(MY_WME));
|
||||||
|
Reference in New Issue
Block a user