Commit graph

12 commits

Author SHA1 Message Date
Matthias Leich
d657438ea0 Fix for Bug#40377 sporadic pushbuild failure in log_state: result mismatch
+ add workaround for bug 38124
+ messages into the protocol when sessions are switched
+ replace error numbers by error names
+ reset of system variables to initial values per subtest
+ remove a file created by this test
+ minor improvements in structure and formatting
2009-01-13 14:09:24 +01:00
Tatiana A. Nurnberg
c1ed70d384 WL#4403 deprecate @log and @slow_log_queries variables
Adds --general_log_file, --slow_query_log_file command-
line options to match system variables of the same names.

Deprecates --log, --log-slow-queries command-line options
and log, log_slow_queries system-variables for v7.0; they
are superseded by general_log/general_log_file and
slow_query_log/slow_query_log_file, respectively.
2008-10-06 11:29:42 +02:00
anozdrin/alik@quad.opbmk
73345d0fbd Fix for Bug#32748: Inconsistent handling of assignments to
general_log_file/slow_query_log_file.

The problem was that log file path was rejected if directory
path was empty. The fix is to reject log file path only if it
is entirely empty.
2008-03-28 21:46:18 +03:00
tsmith@ramayana.hindu.god
8fc0bfb6b6 Merge ramayana.hindu.god:/home/tsmith/m/bk/51
into  ramayana.hindu.god:/home/tsmith/m/bk/maint/51-merge
2007-12-05 12:33:36 -07:00
kaa@polly.(none)
1f268043f6 Fix for bug #29131: SHOW VARIABLES reports variable 'log' but SET
doesn't recognize it
  
This is a 5.1 version of the patch.
  
Problem:
  
'log' and 'log_slow_queries' were "fixed" variables, i.e. they showed up
in SHOW VARIABLES, but could not be used in expressions like 
"select @@log". Also, using them in the SET statement produced an 
incorrect "unknown system variable" error.
  
Solution:

Since as of MySQL 5.1.12 one can enable or disable the general query log
or the slow query log at runtime by changing values of
general_log/slow_query_log, make 'log' and 'log_slow_queries" to be 
synonyms for 'general_log' and 'slow_query_log' respectively.  This 
makes expressions using the '@@var' syntax backward compatible with 
5.0 and SHOW VARIABLES output to be consistent with the SET statement.
2007-10-25 14:03:24 +04:00
ramil/ram@mysql.com/ramil.myoffice.izhnet.ru
3d2f493fb4 Fix bug #31604: server crash when setting slow_query_log_file/global general_log_file variable
Problem: we don't evaluate given expression checking values of the
slow_query_log_file/general_log_file, don't check it for NULL.

Fix: evaluate the expression, check result returned.
2007-10-16 17:19:07 +05:00
kostja@bodhi.(none)
3ecef8c0b9 A fix for Bug#28830 Test case log_state fails on VMWare Windows clone due to loaded system 2007-08-08 15:49:19 +04:00
malff/marcsql@weblab.(none)
c7bbd8917c WL#3984 (Revise locking of mysql.general_log and mysql.slow_log)
Bug#25422 (Hang with log tables)
Bug 17876 (Truncating mysql.slow_log in a SP after using cursor locks the
          thread)
Bug 23044 (Warnings on flush of a log table)
Bug 29129 (Resetting general_log while the GLOBAL READ LOCK is set causes
           a deadlock)

Prior to this fix, the server would hang when performing concurrent
ALTER TABLE or TRUNCATE TABLE statements against the LOG TABLES,
which are mysql.general_log and mysql.slow_log.

The root cause traces to the following code:
in sql_base.cc, open_table()
  if (table->in_use != thd)
  {
    /* wait_for_condition will unlock LOCK_open for us */
    wait_for_condition(thd, &LOCK_open, &COND_refresh);
  }
The problem with this code is that the current implementation of the
LOGGER creates 'fake' THD objects, like
- Log_to_csv_event_handler::general_log_thd
- Log_to_csv_event_handler::slow_log_thd
which are not associated to a real thread running in the server,
so that waiting for these non-existing threads to release table locks
cause the dead lock.

In general, the design of Log_to_csv_event_handler does not fit into the
general architecture of the server, so that the concept of general_log_thd
and slow_log_thd has to be abandoned:
- this implementation does not work with table locking
- it will not work with commands like SHOW PROCESSLIST
- having the log tables always opened does not integrate well with DDL
operations / FLUSH TABLES / SET GLOBAL READ_ONLY

With this patch, the fundamental design of the LOGGER has been changed to:
- always open and close a log table when writing a log
- remove totally the usage of fake THD objects
- clarify how locking of log tables is implemented in general.

See WL#3984 for details related to the new locking design.

Additional changes (misc bugs exposed and fixed):

1)

mysqldump which would ignore some tables in dump_all_tables_in_db(),
 but forget to ignore the same in dump_all_views_in_db().

2)

mysqldump would also issue an empty "LOCK TABLE" command when all the tables
to lock are to be ignored (numrows == 0), instead of not issuing the query.

3)

Internal errors handlers could intercept errors but not warnings
(see sql_error.cc).

4)

Implementing a nested call to open tables, for the performance schema tables,
exposed an existing bug in remove_table_from_cache(), which would perform:
  in_use->some_tables_deleted=1;
against another thread, without any consideration about thread locking.
This call inside remove_table_from_cache() was not required anyway,
since calling mysql_lock_abort() takes care of aborting -- cleanly -- threads
that might hold a lock on a table.
This line (in_use->some_tables_deleted=1) has been removed.
2007-07-27 00:31:06 -06:00
msvensson@pilot.blaudden
9da1b427a7 Test for setting general_log_file to a directory fails
since /tmp is used as the directory. It does not always
exist so let's use one that always exists MYSQLTEST_VARDIR
2007-02-20 21:00:05 +01:00
knielsen@rt.int.sifira.dk
5ebc51cc70 Fix hardcoded /tmp path (which causes problems when running multiple
tests on a single machine) to use $MYSQLTEST_VARDIR/tmp instead.
2006-07-04 22:37:32 +02:00
gluh@eagle.intranet.mysql.r18.ru
4c746fdb8e test fix(to satisfy Win) 2006-06-22 19:20:29 +05:00
gluh@eagle.intranet.mysql.r18.ru
1d72c66c1b WL#3015: Logging Improvements - No Restarts(ver N4)
Added slow_query_log & general_log global upadatable variables.
Added slow-query-log & general-log startup options.
Added log_output, general_log_file, slow_query_log_file global updatable variables.
2006-06-19 18:30:55 +05:00