1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-27 18:02:13 +03:00
Commit Graph

902 Commits

Author SHA1 Message Date
9216114ce7 Merge 10.3 into 10.4 2020-07-31 18:09:08 +03:00
66ec3a770f Merge 10.2 into 10.3 2020-07-31 13:51:28 +03:00
2107e3bb9c MDEV-21258: Can't uninstall plugin if the library file doesn't exist
Removing plugin from the mysql.plugin even if the plugin is not loaded
2020-07-29 12:34:53 +02:00
4968fdbcef MDEV-19918 Server hangs or crashes while trying to lock mutex when the
mutex was already locked upon startup with server_audit and orphan
records in mysql.plugin.

Preaquire auditing plugins before LOCK_plugin to awoid double locking.
2020-07-26 18:01:12 +04:00
ca38b6e427 Merge 10.3 into 10.4 2020-05-26 11:54:55 +03:00
ecc7f305dd Merge 10.2 into 10.3 2020-05-25 19:41:58 +03:00
be647ff14d Fixed deadlock with LOCK TABLES and ALTER TABLE
MDEV-21398 Deadlock (server hang) or assertion failure in
Diagnostics_area::set_error_status upon ALTER under lock

This failure could only happen if one locked the same table
multiple times and then did an ALTER TABLE on the table.

Major change is to change all instances of
table->m_needs_reopen= true;
to
table->mark_table_for_reopen();

The main fix for the problem was to ensure that we mark all
instances of the table in the locked_table_list and when we
reopen the tables, we first close all tables before reopening
and locking them.

Other things:
- Don't call thd->locked_tables_list.reopen_tables if there
  are no tables marked for reopen. (performance)
2020-05-23 14:58:33 +03:00
2792c6e7b0 Merge branch '10.3' into 10.4 2019-07-28 13:43:26 +02:00
d97342b6f2 Merge branch '10.2' into 10.3 2019-07-26 22:42:35 +02:00
cf8c2a3c3b Merge branch '10.1' into 10.2 2019-07-26 07:03:39 +02:00
e9c1701e11 Merge 10.3 into 10.4 2019-07-25 18:42:06 +03:00
ae476868a5 Merge branch '5.5' into 10.1 2019-07-25 13:27:11 +02:00
8ddb7e3eb7 Bug#27167197 USING ? IN INSTALL PLUGIN QUERY ABORTS DEBUG, AND HANGS OPTIMIZED SERVER
check_valid_path() uses my_strcspn() that cannot handle invalid characters
properly. This is fixed by a big refactoring in 10.2 (MDEV-6353).

For 5.5, let's simply swap tests, because check_string_char_length()
rejects invalid characters just fine.
2019-07-24 18:32:24 +02:00
5e8ab9b7af Bug#27302459: EMPTY VALUE IN MYSQL.PLUGIN TABLE CAUSES SERVER TO EXIT ON STARTUP
Description:- During server startup, the server exits if
the 'mysql.plugin' system table has any rows with empty
value for the field 'name' (plugin name).
2019-07-24 18:32:24 +02:00
0f83c8878d Merge 10.2 into 10.3 2019-07-16 18:39:21 +03:00
26c389b7b7 Merge 10.1 into 10.2 2019-07-09 13:22:22 +03:00
7a3d34d645 Merge 10.3 into 10.4 2019-07-02 21:44:58 +03:00
e82fe21e3a Merge 10.2 into 10.3 2019-07-02 17:46:22 +03:00
bf37b9fce9 MDEV-19636 Usage message for plugin activation - add FORCE_PLUS_PERMANENT 2019-07-02 12:03:39 +03:00
ddeeb42e0b Merge 10.1 into 10.2 2019-06-23 20:33:13 +03:00
65e0c9b91b MDEV-18661 loading the audit plugin causes performance regression.
Plugin fixed to not lock the LOCK_operations when not active.
Server fixed to lock the LOCK_plugin less - do it once per
thread and then only if a plugin was installed/uninstalled.
2019-06-15 01:02:55 +04:00
c07325f932 Merge branch '10.3' into 10.4 2019-05-19 20:55:37 +02:00
be85d3e61b Merge 10.2 into 10.3 2019-05-14 17:18:46 +03:00
3d8cacee6e MDEV-19404: Assertion failure on !is_thread_specific || (mysqld_server_initialized && thd)
In wsrep_plugins_post_init we iterate all theads and if they are
galera appliers (wsrep_applier) we init session variables. However,
current_thd was not set and recent changes on session variables
require holding LOCK_gloal_system_variables mutex.

This is 10.4 version.
2019-05-14 11:25:42 +03:00
26a14ee130 Merge 10.1 into 10.2 2019-05-13 17:54:04 +03:00
cb248f8806 Merge branch '5.5' into 10.1 2019-05-11 22:19:05 +03:00
5543b75550 Update FSF Address
* Update wrong zip-code
2019-05-11 21:29:06 +03:00
26cb9f75ee MDEV-19404: Assertion failure on !is_thread_specific || (mysqld_server_initialized && thd)
In wsrep_plugins_post_init we iterate all theads and if they are
galera appliers (wsrep_applier) we init session variables. However,
current_thd was not set and recent changes on session variables
require holding LOCK_gloal_system_variables mutex.
2019-05-07 15:16:45 +03:00
d3dcec5d65 Merge 10.3 into 10.4 2019-05-05 15:06:44 +03:00
894df7edb6 Adieu find_sys_var_ex()
Only take LOCK_plugin for plugin system variables.

Reverted optimisation that was originally done for session tracker: it
makes much less sense now. Specifically only if connections would want to
track plugin session variables changes and these changes would actually
happen frequently. If this ever becomes an issue, there're much better
ways to optimise this workload.

Part of MDEV-14984 - regression in connect performance
2019-05-03 16:46:11 +04:00
1b5cf2f7e7 Safe session_track_system_variables snapshot
When enabling system variables tracker, make a copy of
global_system_variables.session_track_system_variables
under LOCK_global_system_variables. This protects from concurrent variable
updates and potential freed memory access, as well as from variable
reconstruction (which was previously protected by LOCK_plugin).

We can also use this copy as a session variable pointer, so that we don't
have to allocate memory and reconstruct it every time it is referenced.

For this very reason we don't need buffer_length stuff anymore.

As well as don't we need to take LOCK_plugin early in ::enable().
Unified ::parse_var_list() to acquire LOCK_plugin unconditionally.
For no apparent reason it wasn't previously acquired for global
variable update.

Part of MDEV-14984 - regression in connect performance
2019-05-03 16:46:05 +04:00
3503fbbebf Move THD list handling to THD_list
Implemented and integrated THD_list as a replacement for the global
thread list. It uses own mutex instead of LOCK_thread_count for THD
list protection.

Removed unused first_global_thread() and next_global_thread().

delayed_insert_threads is now protected by LOCK_delayed_insert. Although
this patch doesn't fix very wrong synchronization of this variable.

After this patch there are only 2 legitimate uses of LOCK_thread_count
left, both in mysqld.cc: thread_count and ready_to_exit.

Aim is to reduce usage of LOCK_thread_count and COND_thread_count.
Part of MDEV-15135.
2019-01-28 17:39:07 +04:00
074c684099 Merge 10.3 into 10.4 2018-11-06 16:24:16 +02:00
df563e0c03 Merge 10.2 into 10.3
main.derived_cond_pushdown: Move all 10.3 tests to the end,
trim trailing white space, and add an "End of 10.3 tests" marker.
Add --sorted_result to tests where the ordering is not deterministic.

main.win_percentile: Add --sorted_result to tests where the
ordering is no longer deterministic.
2018-11-06 09:40:39 +02:00
32062cc61c Merge 10.1 into 10.2 2018-11-06 08:41:48 +02:00
6087e21d91 compilation failure on Windows
sql\sql_acl.cc(3114): error C2220: warning treated as error - no 'object' file generated
  sql\sql_acl.cc(3114): warning C4390: ';': empty controlled statement found; is this the intent?
2018-10-31 16:06:16 +01:00
9aac2bf86e MDEV-16294 post-merge cleanups
Closes #757
2018-10-31 16:06:15 +01:00
6513b838d3 MDEV-16294: postfix - INSTALL PLUGIN IF NOT EXISTS
Fix also UNINSTALL SONAME IF EXISTS

Complete test case to INSTALL/UNINSTALL errors are generated
2018-10-31 16:06:15 +01:00
bb85d92d6f MDEV-16294: INSTALL PLUGIN IF NOT EXISTS / UNINSTALL PLUGIN IF EXISTS
Add INSTALL SONAME IF NOT EXISTS; syntax only, installing
duplicate SONAMES doesn't currently cause any errors or warnings.

UNINSTALL SONAME IF EXISTS was added.

Allow the installation / uninstallation of plugins without
doing checks for existence first.
2018-10-31 16:06:15 +01:00
329058be29 wsrep: create a macro for the error: label
that is used by WSREP_TO_ISOLATION_BEGIN and other galera macros,
to avoid the need for wrapping this label in #ifdef WITH_WSREP/#endif
2018-10-24 14:48:08 +02:00
36e59752e7 Merge branch '10.2' into 10.3 2018-06-30 16:39:20 +02:00
b942aa34c1 Merge branch '10.1' into 10.2 2018-06-21 23:47:39 +02:00
44682962e3 Fix another double WSREP_ISOLATION_BEGIN merge error 2018-06-20 11:10:27 +02:00
04c4745478 Fix double WSREP_ISOLATION_BEGIN merge error 2018-06-20 01:28:59 +03:00
6e55236c0a Merge branch '10.0-galera' into 10.1 2018-06-12 19:39:37 +03:00
d5db2f1084 cleanup: report_error() in sql_plugin.cc
it's redundant. remove it, use my_error() directly.
2018-05-21 16:34:11 +00:00
e1ffb66449 Merge tag 'mariadb-10.0.35' into 10.0-galera 2018-05-07 17:20:39 +03:00
648cf7176c Merge remote-tracking branch 'origin/5.5-galera' into 10.0-galera 2018-05-07 13:49:14 +03:00
30ebc3ee9e Add likely/unlikely to speed up execution
Added to:
- if (error)
- Lex
- sql_yacc.yy and sql_yacc_ora.yy
- In header files to alloc() calls
- Added thd argument to thd_net_is_killed()
2018-05-07 00:07:32 +03:00
7396dfcca7 Merge 10.2 into 10.3 2018-04-24 20:59:57 +03:00