1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-29 05:21:33 +03:00
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:
unknown
2003-09-24 22:55:04 +02:00
parent f46ca5fbe9
commit 874783abb2
2 changed files with 11 additions and 1 deletions

View File

@ -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,

View File

@ -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));