Commit 63ed1e49 authored by Georgi Kodinov's avatar Georgi Kodinov

Bug #35396: Abnormal query times in slow query log

            
If the system time is adjusted back during a query execution
(resulting in the end time being earlier than the start time)
the code that prints to the slow query log gets confused and 
prints unsigned negative numbers.
            
Fixed by not logging the statements that would have negative
execution time due to time shifts.
No test case since this would involve changing the system time.
parent 6a834d1f
...@@ -2333,8 +2333,9 @@ void log_slow_statement(THD *thd) ...@@ -2333,8 +2333,9 @@ void log_slow_statement(THD *thd)
{ {
thd->proc_info="logging slow query"; thd->proc_info="logging slow query";
if ((ulong) (thd->start_time - thd->time_after_lock) > if ((thd->start_time > thd->time_after_lock &&
thd->variables.long_query_time || (ulong) (thd->start_time - thd->time_after_lock) >
thd->variables.long_query_time) ||
(thd->server_status & (thd->server_status &
(SERVER_QUERY_NO_INDEX_USED | SERVER_QUERY_NO_GOOD_INDEX_USED)) && (SERVER_QUERY_NO_INDEX_USED | SERVER_QUERY_NO_GOOD_INDEX_USED)) &&
opt_log_queries_not_using_indexes && opt_log_queries_not_using_indexes &&
......
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