- 25 Nov, 2016 10 commits
-
-
https://github.com/kevgs/serverMarko Mäkelä authored
Revert the XtraDB changes, because 10.2 does not currently build with XtraDB. Also omit some changes that need further investigation. Ensure that all callers of partition_info::get_clone() are passing this!=NULL.
-
Marko Mäkelä authored
buf_block_init(): Initialize buf_page_t::flush_type. For some reason, Valgrind 3.12.0 would seem to flag some bits in adjacent bitfields as uninitialized, even though only the two bits of flush_type were left uninitialized. Initialize the field to get rid of many warnings. buf_page_init_low(): Initialize buf_page_t::old. For some reason, Valgrind 3.12.0 would seem to flag all 32 bits uninitialized when buf_page_init_for_read() invokes buf_LRU_add_block(bpage, TRUE). This would trigger bogus warnings for buf_page_t::freed_page_clock being uninitialized. (The V-bits would later claim that only "old" is initialized in the 32-bit word.) Perhaps recent compilers (GCC 6.2.1 and clang 4.0.0) generate more optimized x86_64 code for bitfield operations, confusing Valgrind? mach_write_to_1(), mach_write_to_2(), mach_write_to_3(): Rewrite the assertions that ensure that the most significant bits are zero. Apparently, clang 4.0.0 would optimize expressions of the form ((n | 0xFF) <= 0x100) to (n <= 0x100). The redundant 0xFF was added in the first place in order to suppress a Valgrind warning. (Valgrind would warn about comparing uninitialized values even in the case when the uninitialized bits do not affect the result of the comparison.)
-
Marko Mäkelä authored
In functions that declare pointer parameters as nonnull, remove nullness checks, because GCC would optimize them away anyway. Use #ifdef instead of #if when checking for a configuration flag. Clang says that left shifts of negative values are undefined. So, use ~0U instead of ~0 in a number of macros. Some functions that were defined as UNIV_INLINE were declared as UNIV_INTERN. Consistently use the same type of linkage. ibuf_merge_or_delete_for_page() could pass bitmap_page=NULL to buf_page_print(), conflicting with the __attribute__((nonnull)).
-
Sergey Vojtovich authored
Threads may fall asleep forever while acquiring InnoDB rw-lock on Power8. This regression was introduced along with InnoDB atomic operations fixes. The problem was that proper memory order wasn't enforced between "writers" store and "lock_word" load: my_atomic_store32((int32*) &lock->waiters, 1); ... local_lock_word = lock->lock_word; Locking protocol is such that store to "writers" must be completed before load of "lock_word". my_atomic_store32() was expected to enforce memory order because it issues strongest MY_MEMORY_ORDER_SEQ_CST memory barrier. According to C11: - any operation with this memory order is both an acquire operation and a release operation - for atomic store order must be one of memory_order_relaxed memory_order_release or memory_order_seq_cst. Otherwise the behavior is undefined. That is it doesn't say explicitly that this expectation is wrong, but there are indications that acquire (which is actually supposed to guarantee memory order in this case) may not be issued along with MY_MEMORY_ORDER_SEQ_CST. A good fix for this is to encode waiters into lock_word, but it is a bit too intrusive. Instead we change atomic store to atomic fetch-and-store, which does memory load and is guaranteed to issue acquire.
-
Sergey Vojtovich authored
Simplify away recursive flag: it is not necessary for rw-locks to operate properly. Now writer_thread != 0 means recursive. As we only need correct value of writer_thread only in writer_thread itself it is rather safe to load and update it non-atomically. This patch also fixes potential reorder of "writer_thread" and "recursive" loads (aka MDEV-7148), which was reopened along with InnoDB thread fences simplification. Previous versions are unaffected, because they have os_rmb in rw_lock_lock_word_decr(). It wasn't observed at the moment of writing though.
-
Sergey Vojtovich authored
Clean-up INNODB_RW_LOCKS_USE_ATOMICS: it is always set.
-
Sergey Vojtovich authored
Simplified away rw_lock_get_waiters(), rw_lock_set_waiter_flag(), rw_lock_reset_waiter_flag(). Let waiters have predictable data type.
-
Sergey Vojtovich authored
Simplified away rw_lock_lock_word_incr().
-
Otto Kekäläinen authored
This is required, as the innochecksum binary has moved package. Without this change the following error would be emitted: Unpacking mariadb-server-core-10.2 (10.2.3+maria~jessie) over (10.2.2+maria-1~jessie) ... dpkg: error processing archive /var/cache/apt/archives/mariadb-server-core-10.2_10.2.3+maria~jessie_amd64.deb (--unpack): trying to overwrite '/usr/bin/innochecksum', which is also in package mariadb-client-10.2 10.2.2+maria-1~jessie
-
Otto Kekäläinen authored
Quite often in upgrades on systemd systems dpkg emitted an error like: Failed to stop mysql.service: Unit mysql.service not loaded. invoke-rc.d: initscript mysql, action "stop" failed. invoke-rc.d returned 5 There is a MySQL server running, but we failed in our attempts to stop it. Stop it yourself and try again! dpkg: error processing archive /var/cache/apt/archives/mariadb-server-10.2 This is because the mariadb/mysql.service file is not loaded during the upgrade/unpack stage of dpkg in certain situations. With this simple check we can easily skip the shutdown step when it is really not needed, which is for sure the case if no mysqld process at all is running on the entire system.
-
- 24 Nov, 2016 2 commits
-
-
Lawrin Novitsky authored
capabilities(in upper 32bits) were sent as 0 on 32bit Windows. They were reset because CLIENT_SSL, CLIENT_COMPRESS and CLIENT_SSL_VERIFY_SERVER_CERT were defined as UL Plus MARIADB_CLIENT_STMT_BULK_OPERATIONS was defined as 1UL << 34, and that is undefined operation.
-
kevg authored
-
- 23 Nov, 2016 1 commit
-
-
Igor Babaev authored
There were no implementations for the virtual functions exclusive_dependence_on_table_processor and exclusive_dependence_on_table_processor. As a result the procedure pushdown_cond_for_derived erroneously detected some conditions with outer references as pushable into materialized view / derived table.
-
- 22 Nov, 2016 1 commit
-
-
Oleksandr Byelkin authored
MDEV-10724 Assertion `vcol_table == 0 || vcol_table == table' failed in fill_record(THD*, TABLE*, List<Item>&, List<Item>&, bool, bool) Attempt to insert in several tables now checked just by table map.
-
- 21 Nov, 2016 7 commits
-
-
Nirbhay Choubey authored
.. (MDL_key::TABLE, table->db, table->table_name, MDL_SHARED)' failed in mysql_rm_table_no_locks Reset error flag after temporary table has been successfully dropped.
-
Nirbhay Choubey authored
SST processes should inherit mysqld's process group.
-
Nirbhay Choubey authored
-
Bernard Spil authored
- Make rsync process checks OS-dependent - Use (BSD) netstat on FreeBSD (not lsof)
-
Bernard Spil authored
- Replace #!/bin/bash with #!/bin/sh - Split username:password using POSIX compat %% and ## - Don't use array for FILTERS - Replace == tests with POSIX-compat =
-
Igor Babaev authored
The idea of this fix was taken from the patch by Roy Lyseng for mysql-5.6 bug iBug#14740889: "Wrong result for aggregate functions when executing query through cursor". Here's Roy's comment for his patch: " The problem was that a grouped query did not behave properly when executed using a cursor. On further inspection, the query used one intermediate temporary table for the grouping. Then, Select_materialize::send_result_set_metadata created a temporary table for storing the query result. Notice that get_unit_column_types() is used to retrieve column meta-data for the query. The items contained in this list are later modified so that their result_field points to the row buffer of the materialized temporary table for the cursor. But prior to this, these result_field objects have been prepared for use in the grouping operation, by JOIN::make_tmp_tables_info(), hence the grouping operation operates on wrong column buffers. The problem is solved by using the list JOIN::fields when copying data to the materialized table. This list is set by JOIN::make_tmp_tables_info() and points to the columns of the last intermediate temporary table of the executed query. For a UNION, it points to the temporary table that is the result of the UNION query. Notice that we have to assign a value to ::fields early in JOIN::optimize() in case the optimization shortcuts due to a const plan detection. A more optimal solution might be to avoid creating the final temporary table when the query result is already stored in a temporary table. " The patch does not contain a test case, but the description of the problem corresponds exactly what could be observed in the test case for mdev-11081.
-
Kristian Nielsen authored
-
- 20 Nov, 2016 8 commits
-
-
Sergei Petrunia authored
Instead of restart_mysqld.inc, truncate the P_S tables that are used by the test. We don't want to query some irrelevant data.
-
Kristian Nielsen authored
The motivation for this is that Perl is moving towards not having current directory ./ in @INC by default. This is causing mysql-test-run.pl to fail in latest Debian Unstable: https://lists.debian.org/debian-devel-announce/2016/08/msg00013.html However, we have `use "lib"`, there is no need for current directory in @INC, except for a gross hack. In mtr_cases.pm, there is a `require "mtr_misc.pl"`, which hides mtr_misc.pl away in mtr_cases namespace. And things only work because mysql-test-run.pl loads it with a different name, `require "lib/mtr_misc.pl"`! (Perl will `require` only once for each unique filename). Fix this by only using `require` in main program, and referencing functions with :: scope from other namespaces. For multi-use in different namespaces, proper `use` modules should be used. Signed-off-by: Kristian Nielsen <knielsen@knielsen-hq.org>
-
Otto Kekäläinen authored
This way all 3rd party apps configured to build against any MySQL or MariaDB version will pick up the libmariadb3-dev package instead.
-
Otto Kekäläinen authored
In Debian many existing applications in Debian/Ubuntu have been built while libmariadbclient-dev or libmariadbclient-dev-compat was installed. To satisfy installation dependencies, the package name libmariadbclient18 must be provided, and at runtime a shared library must by the name libmariadbclient.so.18. Provide these to remain backwards compatible.
-
Otto Kekäläinen authored
The new library name libmariadb3 matches the libmariadb.so.3 filename. Packages that want to build against MariaDB Connector C have as build-dependency libmariadb-dev and as run-time dependency libmariadb3. Make the package provide libmariadbclient18 for backwards compatibility, though compatibility is not always assured. There library did change to a whole new generation after all, even though ABI compatibility has been a design goal. Also do the equivalent change for the -dev package. Packages that explicitly want to use the MariaDB Connector C should mark it as their build-depends. Also provide an empty libmariadbclient18 metapackage to facilitate upgrades from old MariaDB installs, just like there is an empty libmysqlclient18 package. Create more of these in the future as needed.
-
Otto Kekäläinen authored
Since Debian 9 (Stretch) and Ubuntu 16.10 (Yakkety) the following packages have existed: * virtual-mysql-client * virtual-mysql-client-core * virtual-mysql-server * virtual-mysql-server-core * virtual-libmysqlclient-dev They are metapackages that in Debian depend on MariaDB and in Ubuntu currently on MySQL. We need to provide them and point them to MariaDB so that systems that have the mariadb.org repositories enabled automatically get everything MariaDB and not MySQL. This change makes the packaging provide the four first ones, and later commits will fix the client library issues.
-
Otto Kekäläinen authored
-
Otto Kekäläinen authored
-
- 19 Nov, 2016 2 commits
-
-
Sergei Petrunia authored
Patch b8b1b928 was pushed by mistake
-
Alexander Barkov authored
MDEV-726 - CREATE and ALTER SERVER need to lowercase host name
-
- 18 Nov, 2016 4 commits
-
-
Otto Kekäläinen authored
The versioned so-file belongs to the run-time package and the unversioned symlink shall be in the development package.
-
Sergei Petrunia authored
The reason is that selecting from events_waits_history_long creates a race condition: it can happen that SHOW EXPLAIN thread was kicked off CPU exactly after posting a SHOW EXPLAIN request and then it wont need to wait. It doesn't seem to make sense to add more waits to stabilize the testcase. Let's instead make a check that SHOW EXPLAIN statement has a "stage/sql/show explain" stage.
-
Sergei Petrunia authored
-
Oleksandr Byelkin authored
-
- 17 Nov, 2016 5 commits
-
-
Sergey Vojtovich authored
-
Sergey Vojtovich authored
Due to high memory reqirements spider tests fail often on automated testing VM's due to rather limited resource allocation. For example with 10.2 spider needs at least 200M * 8 mysqld instances = 1.6Gb RAM per mtr instance. With --parallel=4 it needs 6.4Gb, while appropriate hosts have just 3Gb.
-
Daniel Black authored
libmariadbd19 was intended to be added as the package that included the libmysqld shared library. This was missing from the debian control file. The libmariadbd-dev package requires libmariadbd19 to provide the shared library. The shared libraries for embedded mysql will go into the libmariadbd18 package rather than the libmariadbd-dev development package. /usr/bin/mariadb_config is a executable that assists embedded developers to use the correctly correct header and library files during their development. Signed-off-by: Daniel Black <daniel.black@au.ibm.com>
-
Daniel Black authored
Previously private/*.h where included in the package. These represent internal mysqld structures that aren't guarenteed to provide a stable ABI. There aren't intended to be used by embedded mysqld applications so they have been removed. Signed-off-by: Daniel Black <daniel.black@au.ibm.com>
-
Igor Babaev authored
The class Item_func_nop_all missed an implementation of the virtual method get_copy. As a result if the condition that can be pushed into into a materialized view / derived table contained an ANY subselect then the pushdown condition was built incorrectly.
-