Commit b872877a authored by unknown's avatar unknown

Bug #27099: system_mysql fail in pushbuild windows

On Windows the debug log was doing freopen () instead of
fflush() and that was slowing the logging down that much 
that some tests timed out.
Fixed by replacing the freopen() with an syncing-to-disk
flag to fopen() and fflush().
Also increased the timeout of the tests running with --debug
on windows : seems to slow down as much as valgrind on linux.


dbug/dbug.c:
  Bug #27099: remove the freopen() for the 
  windows log : too slow. Replace it with the "c" option
  for fopen().
mysql-test/mysql-test-run.pl:
  Bug #27099: on windows debug log seems to slow the tests
  down about as much as valgrind does on linux.
parent 3e7e78d7
......@@ -1826,7 +1826,13 @@ static void DBUGOpenFile(CODE_STATE *cs,
else
{
newfile= !EXISTS(name);
if (!(fp= fopen(name, append ? "a+" : "w")))
if (!(fp= fopen(name,
#if defined(MSDOS) || defined(__WIN__)
append ? "a+c" : "wc"
#else
append ? "a+" : "w"
#endif
)))
{
(void) fprintf(stderr, ERR_OPEN, cs->process, name);
perror("");
......@@ -2231,23 +2237,9 @@ static void dbug_flush(CODE_STATE *cs)
if (cs->stack->flags & FLUSH_ON_WRITE)
#endif
{
#if defined(MSDOS) || defined(__WIN__)
if (cs->stack->out_file != stdout && cs->stack->out_file != stderr)
{
if (!(freopen(cs->stack->name,"a",cs->stack->out_file)))
{
(void) fprintf(stderr, ERR_OPEN, cs->process, cs->stack->name);
fflush(stderr);
cs->stack->out_file= stderr;
}
}
else
#endif
{
(void) fflush(cs->stack->out_file);
if (cs->stack->delay)
(void) Delay(cs->stack->delay);
}
(void) fflush(cs->stack->out_file);
if (cs->stack->delay)
(void) Delay(cs->stack->delay);
}
if (!cs->locked)
pthread_mutex_unlock(&THR_LOCK_dbug);
......
......@@ -1019,12 +1019,14 @@ sub command_line_setup () {
{
$opt_testcase_timeout= $default_testcase_timeout;
$opt_testcase_timeout*= 10 if $opt_valgrind;
$opt_testcase_timeout*= 10 if ($opt_debug and $glob_win32);
}
if ( ! $opt_suite_timeout )
{
$opt_suite_timeout= $default_suite_timeout;
$opt_suite_timeout*= 6 if $opt_valgrind;
$opt_suite_timeout*= 6 if ($opt_debug and $glob_win32);
}
if ( ! $opt_user )
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment