- 01 Nov, 2013 2 commits
- 31 Oct, 2013 2 commits
-
-
unknown authored
In parallel replication, there are two kinds of events which are executed in different ways. Normal events that are part of event groups/transactions are executed asynchroneously by being queued for a worker thread. Other events like format description and rotate and such are executed directly in the driver SQL thread. If the direct execution of the other events were to update the old-style position, then the position gets updated too far ahead, before the normal events that have been queued for a worker thread have been executed. So this patch adds some special cases to prevent such position updates ahead of time, and instead queues dummy events for the worker threads, so that they will at an appropriate time do the position updates instead. (Also fix a race in a test case that happened to trigger while running tests for this patch).
-
Alexander Barkov authored
which makes it possible to add more world language collations with very complex collation rules (e.g. Myanmar): - Weight string for a single character in a user defined collation was erroneously limited to 7 weights (instead of 8 weights). Added an extra element in the user-defined weight arrays, to fit 8 non-zero weights. - Weight string limit for contractions was made two times longer (16 weights), which allows longer contractions without affecting the performance of filesort. - A user-defined collation now refuses to initialize and reports an error in case if a weight string gets longer than 8 weights for a single character, or longer than 16 weights for a contraction. Previously weight strings for such characters (and contractions) were cut, so a collation could silently start with wrong rules. - Fixed a bug in handling rules like "&a << b" in combination with shift-after-method="expand". The primary weight for "b" was not correctly calculated, which erroneously made "b" primary greater than "a" instead of primary equal to "a".
-
- 30 Oct, 2013 2 commits
-
-
Sergey Vojtovich authored
MDEV-4736 - Assertion `! is_set()' fails in Diagnostics_area::set_ok_status on UPDATE which violates constraint on a remote table
-
unknown authored
MDEV-5196: Server hangs or assertion `!thd->wait_for_commit_ptr' fails on MASTER_POS_WAIT with slave-parallel-threads > 0 Fix a couple of issues in MDEV-4506, Parallel replication: - Missing mysql_cond_signal(), which could cause hangs. - Fix incorrect update of old-style replication position. - Change assertion to error handling (can trigger on manipulated/ corrupt binlog).
-
- 29 Oct, 2013 9 commits
-
-
unknown authored
-
unknown authored
-
unknown authored
-
unknown authored
There was 2 problems: 1) coping/moving of the same type (usually casting) as sizeof() (solved in different ways depends on the cause); 2) using 'const' in SSL_CTX::getVerifyCallback() which return object (not reference) and so copy of the object will be created and 'const' has no sens.
-
Sergei Golubchik authored
-
unknown authored
In parallel replication, when the IO thread switches relay log, the SQL thread re-opens the current relaylog and seeks to the current position. There was a race that would cause it to sometimes seek to the wrong position, causing corruption and crash.
-
timour@askmonty.org authored
Analysis: st_select_lex_unit::prepare() computes can_skip_order_by as TRUE. As a result join->prepare() gets called with order == NULL, and doesn't do name resolution for the inner ORDER clause. Due to this the prepare phase doesn't detect that the query references non-exiting function and field. Later join->optimize() calls update_used_tables() for a non-resolved Item_field, which understandably has no Field object. This call results in a crash. Solution: Resolve unnecessary ORDER BY clauses to detect if they reference non-exising objects. Then remove such clauses from the JOIN object.
-
Alexander Barkov authored
-
Alexander Barkov authored
-
- 28 Oct, 2013 3 commits
-
-
unknown authored
MDEV-5189: Error handling in parallel replication. Fix error handling in parallel worker threads when a query fails: - Report the error to the error log. - Return the error back, and set rli->abort_slave. - Stop executing more events after the error.
-
Alexander Barkov authored
-
Sergei Golubchik authored
GRANT ... IDENTIFIED BY [ PASSWORD ] ... GRANT ... IDENTIFIED VIA ... [ USING ... ] GRANT ... REQUIRE ... GRANT ... MAX_xxx ... SET PASSWORD FOR ... = ...
-
- 27 Oct, 2013 3 commits
-
-
Olivier Bertrand authored
modified: storage/connect/ha_connect.cc storage/connect/odbconn.cpp storage/connect/odbconn.h
-
Olivier Bertrand authored
Fix option other ignored when parsing URL modified: storage/connect/ha_connect.cc storage/connect/mysql-test/connect/t/mysql.test storage/connect/mysql-test/connect/t/mysql_grant.test storage/connect/tabmysql.cpp storage/connect/tabmysql.h
-
Sergei Golubchik authored
-
- 26 Oct, 2013 3 commits
-
-
Olivier Bertrand authored
modified: storage/connect/ha_connect.cc storage/connect/myconn.h storage/connect/tabmysql.cpp storage/connect/tabmysql.h
-
Sergei Golubchik authored
-
Vicențiu Ciorbaru authored
-
- 25 Oct, 2013 5 commits
-
-
Olivier Bertrand authored
Srcdef definition Execute command tables uncomplete connect string modified: storage/connect/ha_connect.cc storage/connect/odbccat.h storage/connect/odbconn.cpp storage/connect/odbconn.h storage/connect/plgdbsem.h storage/connect/plgdbutl.cpp storage/connect/tabodbc.cpp
-
unknown authored
Two problems were fixed: 1. When not in GTID mode (master_use_gtid=no), then we must not apply events in different domains in parallel (in non-GTID mode we are not capable of restarting at different points in different domains). 2. When transactions B and C group commit together, but after and separate from A, we can apply B and C in parallel, but both B and C must not start until A has committed. Fix sub_id to be globally increasing (not just per-domain increasing) so that this wait (which is based on sub_id) can be done correctly.
-
Alexander Barkov authored
Merge from MySQL-5.6
-
Alexander Barkov authored
(a bug in upstream)
-
unknown authored
Do not update relay-log.info and master.info on disk after every event when using GTID mode: - relay-log.info and master.info are not crash-safe, and are not used when slave restarts in GTID mode (slave connects with GTID position instead and immediately rewrites the file with the new, correct information found). - When using GTID and parallel replication, the position in relay-log.info is misleading at best and simply wrong at worst. - When using parallel replication, the fact that every single transaction needs to do a write() syscall to the same file is likely to become a serious bottleneck. The files are still written at normal slave stop. In non-GTID mode, the files are written as normal (this is needed to be able to restart after slave crash, even if such restart is then not crash-safe, no change).
-
- 24 Oct, 2013 4 commits
-
-
unknown authored
Fix uninitialised variable.
-
unknown authored
Implement --slave-parallel-max-queue to limit memory usage of SQL thread read-ahead in the relay log.
-
Sergey Petrunya authored
- Backport MySQL's fix: do set ha_partition::m_pkey_is_clustered for ha_partition objects created with handler->clone() call. - Also, include a testcase.
-
unknown authored
-
- 23 Oct, 2013 7 commits
-
-
Sergei Golubchik authored
MDEV-5176 Server crashes in fill_schema_applicable_roles on select from APPLICABLE_ROLES after a suicide Don't assume that thd->security_ctx->priv_user is an actually existing user account
-
Sergei Golubchik authored
MDEV-5170 Assertion `(&(&acl_cache->lock)->m_mutex)->count > 0 && pthread_equal(pthread_self(), (&(&acl_cache->lock)->m_mutex)->thread)' fails after restarting server with a pre-created role grants lock acl_cache->lock mutex for the duration of acl_load
-
unknown authored
Fix some more parts of old-style position updates. Now we save in rgi some coordinates for master log and relay log, so that in do_update_pos() we can use the right set of coordinates with the right events. The Rotate_log_event::do_update_pos() is fixed in the parallel case to not directly update relay-log.info (as Rotate event runs directly in the driver SQL thread, ahead of actual event execution). Instead, group_master_log_file is updated as part of do_update_pos() in each event execution. In the parallel case, position updates happen in parallel without any ordering, but taking care that position is not updated backwards. Since position update happens only after event execution this leads to the right result. Also fix an access-after-free introduced in an earlier commit.
-
unknown authored
test time increased to be working on all timezones.
-
Sergei Golubchik authored
-
Sergei Golubchik authored
MDEV-5172 safe_mutex: Trying to lock mutex when the mutex was already locked on using a role and I_S role tables don't forget to unlock if the current role isn't found
-
Sergei Golubchik authored
-