Commit graph

171681 commits

Author SHA1 Message Date
Kristian Nielsen
390f2a013b Fix incorrect reading of events from relaylog in parallel replication.
The SQL thread keeps track of the position in the current relay log from
which to read the next event. This position is not normally used, but a
certain interaction with the IO thread can cause the SQL thread to re-open
the relay log and seek to the stored position.

In parallel replication, there were a couple of places where the position
was not updated. This created a race where a re-open of the relay log could
seek to the wrong position and start re-reading and processing events
already handled once, causing various kinds of problems.

Fix this by moving the position update into a single place in
apply_event_and_update_pos(), which should ensure that the position is
always updated in the parallel replication case.

This problem was found from the testcase of MDEV-10863, but it is logically
a separate problem.
2016-11-16 11:00:38 +01:00
Kristian Nielsen
f1fcc1fc10 Back-port Master_info::using_parallel() to 10.0.
This has no functional changes, but it helps avoid merge problems from 10.0
to 10.1. In 10.0, code that checks for parallel replication uses
opt_slave_parallel_threads > 0, but this check needs to be
mi->using_parallel() in 10.1. By using the same check in 10.0 (with
unchanged semantics), merge problems to 10.1 are avoided.
2016-11-15 23:00:11 +01:00
Kristian Nielsen
9a09072880 Merge branch 'mdev10863' into 10.0 2016-11-15 11:08:01 +01:00
Alexander Barkov
1d9b043a1f A join patch for MDEV-10780 and MDEV-11265
MDEV-10780 Server crashes in in create_tmp_table
MDEV-11265 Access defied when CREATE VIIEW v1 AS SELECT DEFAULT(column) FROM t1

Item_default_value and Item_insert_value erroneously derive from Item_field
but forgot to override some methods that apply only to true fields,
so the server code mixes Item_{default|insert}_value instances with real
table fields (i.e. true Item_field) in some cases.
Overriding a few methods to avoid this.

TODO: we should eventually derive Item_default_value (and Item_insert_value)
directly from Item, as they don't really need the entire Item_field,
Item_ident and Item_result_field functionality.
Only the member "Field *field" related functionality is actually needed,
like val_xxx(), is_null(), get_geometry_type(), charset_for_protocol(), etc.
2016-11-10 18:15:36 +04:00
Kristian Nielsen
717f212840 MDEV-10863: parallel replication tries to continue from wrong position
This occured when the SQL thread (but not the IO thread) stops while
GTID and parallel replication are used with multiple domain ids in the
GTID position, and is restarted.

In this case, the SQL needs to start some way back in the relay log,
applying or skipping events within each replication domain as
appropriate.

The SQL threads starts at the beginning of an old relay log file, and
this position may be in the middle of an event group. The bug was that
such partial event group could be re-applied, causing replication
corruption.

This patch fixes the issue, by making sure to skip any initial events
that were part of an earlier (already applied) event group.
2016-11-04 12:33:42 +01:00
Jan Lindström
9741e0ea72 Initialize zip_dict_ids table and avoid referencing array items
as currently MariaDB does not support compressed columns.
2016-11-01 07:52:28 +02:00
Jan Lindström
923a7f8675 MDEV-11188: rpl.rpl_parallel_partition fails with valgrind warnings in buildbot and outside 2016-10-31 12:16:53 +02:00
Daniel Bartholomew
425d341b98 bump the VERSION 2016-10-28 11:46:15 -04:00
Sergey Vojtovich
cb7b03b00d MDEV-11164 - hardening-wrapper has been removed from Debian Sid
The hardening-wrapper package has been removed from Debian Sid. Remove
dependency and relevant settings.
2016-10-28 13:34:13 +04:00
Oleksandr Byelkin
eca8c324e9 Typo fixed. 2016-10-27 19:07:55 +02:00
Sergei Golubchik
a0795655ab MDEV-10846 Running mysqldump backup twice returns error: Table 'mysql.proc' doesn't exist.
Update test results after 26b87c3
2016-10-27 12:23:31 +02:00
Igor Babaev
d451d772fd Fixed bug mdev-9628.
In the function create_key_parts_for_pseudo_indexes()
the key part structures of pseudo-indexes created for
BLOB fields were set incorrectly.
Also the key parts for long fields must be 'truncated'
up to the maximum length acceptable for key parts.
2016-10-26 20:45:35 -07:00
Igor Babaev
9d4a0dde0a Fixed bug mdev-11096.
1. When min/max value is provided the null flag for it must be set to 0
in the bitmap Culumn_statistics::column_stat_nulls.
2. When the calculation of the selectivity of the range condition
over a column requires min and max values for the column then we
have to check that these values are provided.
2016-10-26 20:45:35 -07:00
Alexey Botchkov
26b87c332f MDEV-10846 Running mysqldump backup twice returns error: Table
'mysql.proc' doesn't exist.

        The mysql_rm_db() doesn't seem to expect the 'mysql' database
        to be deleted. Checks for that added.
        Also fixed the bug MDEV-11105 Table named 'db'
        has weird side effect.
        The db.opt file now removed separately.
2016-10-27 00:04:26 +04:00
Sergei Golubchik
22490a0d70 MDEV-8345 STOP SLAVE should not cause an ERROR to be logged to the error log
cherry-pick from 5.7:
  commit 6b24763
  Author: Manish Kumar <manish.4.kumar@oracle.com>
  Date:   Tue Mar 27 13:10:42 2012 +0530

  BUG#12977988 - ON STOP SLAVE: ERROR READING PACKET FROM SERVER: LOST CONNECTION
                 TO MYSQL SERVER
  BUG#11761457 - ERROR 2013 + "ERROR READING RELAY LOG EVENT" ON STOP SLAVEBUG#12977988 - ON STOP SLAVE: ERROR READING PACKET FROM SERVER: LOST CONNECTION
               TO MYSQL SERVER
2016-10-26 18:44:34 +02:00
Sergei Golubchik
25932708b1 backport include/search_pattern_in_file.inc from 10.1 2016-10-26 18:44:34 +02:00
Jan Lindström
5569ac0059 MDEV-11126: Crash while altering persistent virtual column
Problem was that if old virtual column is computed and stored there
was no check if new column is really virtual column.
2016-10-26 16:46:55 +03:00
Sergey Vojtovich
59a7bc35fc Removed duplicate open_strategy assignments
It is set in sql_yacc.yy.
2016-10-26 14:12:02 +04:00
Sergey Vojtovich
a3c980b381 MDEV-10824 - Crash in CREATE OR REPLACE TABLE t1 AS SELECT spfunc()
Code flow hit incorrect branch while closing table instances before removal.
This branch expects thread to hold open table instance, whereas CREATE OR
REPLACE doesn't actually hold open table instance.

Before CREATE OR REPLACE TABLE it was impossible to hit this condition in
LTM_PRELOCKED mode, thus the problem didn't expose itself during DROP TABLE
or DROP DATABASE.

Fixed by adjusting condition to take into account LTM_PRELOCKED mode, which can
be set during CREATE OR REPLACE TABLE.
2016-10-26 14:12:02 +04:00
Daniel Black
9155cc7090 MDEV-10292: Tokudb - PerconaFT - compile error in recent gcc
The following directives to ignore warnings where in the PerconaFT build in tokudb.
These generate errors when g++ ... -o xxx.so is used to compile are shared object.

As these don't actually hit any warnings they have been removed.

* -Wno-ignored-attributes
* -Wno-pointer-bool-conversion

Signed-off-by: Daniel Black <daniel.black@au.ibm.com>
2016-10-26 11:51:56 +02:00
Vladislav Vaintroub
ad5b88a892 Fix build error in XtraDB on Windows.
coming from Percona's workaround for glibc bug
http://bugs.mysql.com/bug.php?id=82886
2016-10-26 09:26:34 +00:00
Sergei Golubchik
bd4568a111 Merge branch 'bb-10.0-serg' into 10.0 2016-10-26 10:49:31 +02:00
Vladislav Vaintroub
82ab92bd66 MDEV-10951 Field_newdate::cmp access violation
The crash is caused by macro uint3korr() accessing memory (1 byte) past
the end of allocated page. The macro is written such it reads 4 bytes
instead of 3 and discards the value of the last byte.

However, it is not always guaranteed that all uint3korr accesses will be
valid (i.e that the caller allocates an extra byte after the value).

In particular, the tree in Item_func_group_concat does not account for
any extra bytes that it would need for comparison of keys in some cases
(Field_newdate::cmp, Field_medium::cmp)

The fix change uint3korr so it does not access extra bytes.
2016-10-25 22:35:35 +00:00
Sergei Golubchik
2cfccbe433 Merge branch 'connect/10.0' into 10.0 2016-10-25 21:59:06 +02:00
Sergei Golubchik
de9ea40f05 Merge branch 'merge/merge-tokudb-5.6' into 10.0 2016-10-25 21:58:59 +02:00
Sergei Golubchik
675f27b382 Merge branch 'merge/merge-xtradb-5.6' into 10.0
commented out the "compressed columns" feature
2016-10-25 18:28:31 +02:00
Sergei Golubchik
d9787aa29a 5.6.33-79.0 2016-10-25 17:03:23 +02:00
Sergei Golubchik
d7dc03a267 5.6.33-79.0 2016-10-25 17:01:37 +02:00
Sergei Golubchik
12c3e16dfa Merge branch '5.5' into 10.0 2016-10-25 16:41:43 +02:00
Vicențiu Ciorbaru
ed3998ae7c Revert "Add tokuftdump man page"
This reverts commit 1daf746e31.

Removed temporarily to make sure there are no legal problems.
2016-10-25 15:46:10 +02:00
Vicențiu Ciorbaru
1daf746e31 Add tokuftdump man page
The man page was already present in the debian release of MariaDB 10.0.
2016-10-25 16:34:22 +03:00
Vicențiu Ciorbaru
39dceaae60 MDEV-10983: TokuDB does not compile on OS X 10.12
Make use of a different function to get the current tid.

Additionally, librt doesn't exist on OS X. Use System library instead.
2016-10-25 15:12:27 +02:00
Vladislav Vaintroub
ba11dd69fe MDEV-11127 : Fix innochecksum to work with large files on Windows.
- don't use stat() for file size, it doesn not handle large size
  use GetFileSizeEx() instead

- don't use lseek(), it can't handle large files, use _lseeki64() instead.

- Also, switch off OS file buffering for innochecksum on Windows,
to avoid thrashing file cache.
2016-10-25 12:23:34 +00:00
Don Lewis
3321f1adc7 MDEV-5944: Compile fix for OQGRAPH with LLVM
Clang/LLVM has more strict schemantics than gcc.

This patch quantifies the namesspace such that it will
compile using clang.
2016-10-25 13:46:28 +03:00
Elena Stepanova
0c925aa935 MDEV-11097 - Update the list of unstable tests 2016-10-23 18:47:44 +03:00
Vladislav Vaintroub
fb38d26420 MDEV-11104 Fix client to correctly retrieve current user name on Windows
Prior to this patch name of the user was  read from environment variable
USER, with a fallback to 'ODBC', if the environment variable is not set.

The name of the env.variable is incorrect (USERNAME usually contains current
user's name,  but not USER), which made client to  always determine
current user as 'ODBC'.

The fix is to use GetUserName() instead.
2016-10-22 07:34:23 +00:00
Kristian Nielsen
39b7affcb1 Upstream MIPS 32bit-build-on-64bit patch from Debian Bug#838914
From https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=838914

Fixes CMake so that when building a 32-bit mips binary on a 64-bit
mips machine, the target is not set as 32-bit, which apparently
confused some tests in mroonga.
2016-10-21 23:02:56 +02:00
Kristian Nielsen
7eb4bd3f1d Upstream patch from Debian Bug 838557
The patch fixes 128-bit multiply on mips64.

This corrects a previous incorrect patch upstreamed from Debian.
2016-10-21 22:43:46 +02:00
Kristian Nielsen
998f987eda Upstream MIPS test fixes from Debian Bug 838557.
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=838557

MIPS has a different errno for "directory not empty".
2016-10-21 22:37:51 +02:00
Vladislav Vaintroub
4dfb6a3f54 MDEV-11083 performance schema test fail with threadpool
Fix PSI idle and socket instrumentation in threadpool
2016-10-19 00:21:28 +02:00
Daniel Bartholomew
6e257274d9 bump the VERSION 2016-10-17 11:43:47 -04:00
Elena Stepanova
df87be5eda MDEV-11069 main.information_schema test fails if hostname includes 'user'
Patch provided by Honza Horak
2016-10-17 14:04:45 +03:00
Elena Stepanova
4192c46867 MDEV-11061 Valgrind builder produces endless warnings
OpenSSL problems, part II
2016-10-16 04:46:39 +03:00
Elena Stepanova
8a49e00f3f More unstable tests 2016-10-14 23:23:49 +03:00
Elena Stepanova
f6d4f82d6e MDEV-11061 Valgrind builder produces endless warnings after switching to OpenSS 2016-10-14 23:23:16 +03:00
Olivier Bertrand
b7aee7dbe7 - Fix MDEV-10950. Null values not retrieved for numeric types.
Now the null is tested using the result set getObject method.
  modified:   storage/connect/JdbcInterface.java
  modified:   storage/connect/jdbconn.cpp
  modified:   storage/connect/jdbconn.h
2016-10-14 18:29:33 +02:00
Sergei Golubchik
eac8d95ffc compilation warning after xtradb merge 2016-10-14 12:51:53 +02:00
Sergei Golubchik
5a43a31ee8 mysqldump: comments and identifiers with new lines
don't let identifiers with new lines to break a comment
2016-10-14 01:12:04 +02:00
Sergei Golubchik
01b39b7b07 mysqltest: don't eat new lines in --exec
pass them through as is
2016-10-14 01:12:04 +02:00
Sergei Golubchik
383007c75d mysql cli: fix USE command quoting
* use proper sql quoting rules for USE, while preserving
  as much of historical behavior as possible
* short commands (\u) behave as before
2016-10-13 21:38:32 +02:00