On 16.10.2007, at 12:25, Magnus Svensson wrote:
> tis 2007-10-16 klockan 11:31 +0300 skrev Georgi Kodinov:
<snip>
>> I've tried the original way to reproduce and haven't been able to
>> recreate it.
>> Then I've found your comment on (14 Mar):
>> $ ./mysql-test-run.pl show_check skip_grants --check-testcases --
>> debug
>>
>> I've tried the above and discovered that the test was running very
>> slow because of the constant freopen() (I presume). So after a
>> discussion I did two things (as mentioned in my commit comment):
>> 1. increased the timeout of this particular debug run (as the normal
>> one passed with me several times).
>
> Why would we need to do this? We know it will take longer time to run
> with --debug turned on, but do we need to increase the timeout? In
> such
Imho yes (as noted in my commit comment) : from my experience (which
is not representative : see below about my platform) it looks like --
debug slows it down (in comparison with the non-debug run on the same
platform) as much as --valgrind does it to my linux box (in
comparison with the non-valgrind run on the same box).
> a case we should do the *10 for all platforms. Especially since you
> know
> has made it faster on windows... and can't repeat it. ;)
I can repeat the [timeout] problem with --debug on windows all-right
on my platform. I hope I've made it faster, but probably the
difference is not that great.
>> 2. after a discussion with Reggie I've removed the freopen and
>> substituted it with a special fopen() flag for the debug log file
>> that ensures that fflush() flushes to disk and not to OS buffers.
>
> Yes, that looks like a good idea. Could you measure the difference?
Unfortunately not : all I have is a Windows image running on VMWare/
Fusion on MacOSX. So I doubt it will produce any sustainable timing
results. Still (even after my change) I find the --debug on windows
slowing much more in proportion to non-debugged compared to the same
ratio on my linux. But again : this can be my platform.
If you think it's better to increase the --debug timeouts for all the
platforms I'd be happy to update my fix.
>> I really think we should not aggregate more than 1 problem in 1 bug
>> report (makes for confusion about the context among others). So as
>> long as we agree that the first problem is gone we should close this
>> bug. My patch is indeed more or less optional, but IMHO it's a step
>> in the right direction and this is the reason I've added it to
>> this bug.
>
> ok, let's hope the problem is gone. I hade it in my bug list a long
> time
> and haven't managed to really pinpoint the problem more exact than
> what
> my comment as of 14 mar says:
> "Seems like this occurs when mysqld decides to write a query to the
> slow
> log. It will open it for writing and set the "crashed" flag in the
> metafile. The crashed flag will not be reset, either because log is
> never closed or because use_count is not incremented when ha_tina is
> used from log handler."
>
> Although I'm quite sure it still _can_ happen. But as you say,
> until we
> know exactly how it happens, we should close the bug.
Let's keep that in mind and wait for a better evidence of the
original bug. Great analysis, btw !
Best Regards,
Joro
--
Georgi Kodinov, Senior Software Engineer
MySQL AB, Plovdiv, Bulgaria, www.mysql.com
Office: +359 32 634 397 Mobile: +359 887 700 566 Skype: georgekodinov
Are you MySQL certified? www.mysql.com/certification