Commit graph

184524 commits

Author SHA1 Message Date
Sergey Vojtovich
9581c4a8f5 MDEV-17441 - InnoDB transition to C++11 atomics
Almost trivial rw_lock_t::lock_word transition. Since C++11 doesn't
seem to allow mixed (atomic and non-atomic) access to atomic variables,
we have to perform atomic initialisation.

Also made previously broken code in gis0sea.cc even more broken. It is
unclear how it was supposed to work and what exactly it was supposed to
do.
2018-12-27 22:46:38 +04:00
Sergey Vojtovich
4404ee2901 MDEV-17441 - InnoDB transition to C++11 atomics
os_total_large_mem_allocated transition to Atomic_counter.
2018-12-27 22:46:38 +04:00
Sergey Vojtovich
dab38ce023 MDEV-17441 - InnoDB transition to C++11 atomics
Replaced simple_atomic_counter with Atomic_counter.
2018-12-27 22:46:38 +04:00
Sergey Vojtovich
e976c7dbf2 MDEV-17441 - InnoDB transition to C++11 atomics
Trivial buf_tmp_buffer_t::reserved transition.

Relaxed memory order looks suspicious when used by methods that have
acquire()/release() names. Especially if intention is to transfer some
variable or memory region from one thread to another. Or is memory
ordering guaranteed by something else, e.g. some mutex that protects
broader range of acquire/release functionality?
2018-12-27 22:46:38 +04:00
Sergey Vojtovich
6a150e26d9 MDEV-17441 - InnoDB transition to C++11 atomics
Almost trivial TTASEventMutex::m_lock_word transition. Since C++11 doesn't
seem to allow mixed (atomic and non-atomic) access to atomic variables,
we have to perform all accesses atomically.
2018-12-27 22:46:38 +04:00
Sergey Vojtovich
601f45fdcd MDEV-17441 - InnoDB transition to C++11 atomics
Almost trivial TTASMutex::m_lock_word transition. Since C++11 doesn't
seem to allow mixed (atomic and non-atomic) access to atomic variables,
we have to perform all accesses atomically.
2018-12-27 22:46:38 +04:00
Sergey Vojtovich
2e5d35961d MDEV-17441 - InnoDB transition to C++11 atomics
dict_table_t::n_ref_count transition to Atomic_counter.
2018-12-27 22:46:38 +04:00
Sergey Vojtovich
5c657e9fa5 MDEV-17441 - InnoDB transition to C++11 atomics
Trivial srv_running transition.
2018-12-27 22:46:38 +04:00
Sergey Vojtovich
67dbfe6e9c MDEV-17441 - InnoDB transition to C++11 atomics
trx_t::n_ref transition to Atomic_counter.
2018-12-27 22:46:38 +04:00
Sergey Vojtovich
4abdd798f7 MDEV-17441 - InnoDB transition to C++11 atomics
rw_trx_hash_element_t::no transition to Atomic_counter. Since C++11
doesn't seem to allow mixed (atomic and non-atomic) access to atomic
variables, we have to perform atomic initialisation.
2018-12-27 22:46:38 +04:00
Sergey Vojtovich
8023fc6d45 MDEV-17441 - InnoDB transition to C++11 atomics
Almost trivial trx_sys_t::m_rw_trx_hash_version transition. Since C++11
doesn't seem to allow mixed (atomic and non-atomic) access to atomic
variables, we have to perform atomic initialisation.
2018-12-27 22:46:38 +04:00
Sergey Vojtovich
90377b8028 MDEV-17441 - InnoDB transition to C++11 atomics
trx_sys_t::m_max_trx_id transition to Atomic_counter. Since C++11 doesn't
seem to allow mixed (atomic and non-atomic) access to atomic variables,
we have to perform atomic initialisation.
2018-12-27 22:46:38 +04:00
Sergey Vojtovich
03e461634d MDEV-17441 - InnoDB transition to C++11 atomics
fil_validate_count transition to Atomic_counter.
2018-12-27 22:46:38 +04:00
Sergey Vojtovich
ca83115b3e MDEV-17441 - InnoDB transition to C++11 atomics
Added Atomic_counter class to replace big set of atomic operations uses
in InnoDB, as well as in the server.
2018-12-27 22:46:38 +04:00
Marko Mäkelä
ab4bc84420 Follow-up to MDEV-14585: Remove dict_temp_file_num
Now that InnoDB startup drops tables whose name starts with #sql,
the table ID alone should be enough to create a unique table name.

dict_temp_file_num, dict_mem_init(): Remove.

dict_mem_create_temporary_tablename(): Use a combination of
"#sql-ib" and the ID of the table that is being rebuilt
in TRUNCATE TABLE, or discarded in the commit of table-rebuilding
ALTER TABLE...ALGORITHM=INPLACE, or deferred to the DROP queue.

Thanks to Sergey Vojtovich for pointing this out.
2018-12-27 18:35:08 +02:00
Marko Mäkelä
88b7b8199a MDEV-18076/MDEV-18077 Crash on AUTO_INCREMENT column after instant DROP
The fix for MDEV-17901 did not cover cases where the AUTO_INCREMENT
column was not dropped, but some other columns before it were.

commit_cache_norebuild(): Revert the MDEV-17901 fix.

dict_index_t::clear_instant_alter(): Update table->persistent_autoinc.
2018-12-27 16:31:27 +02:00
Marko Mäkelä
003720755f MDEV-18033/MDEV-18034: Assertion failed on NOT NULL removal
innobase_instant_try(): Only try to update the hidden metadata
record if the number of columns is changing (increasing) or
a metadata BLOB is being added due to permuting or dropping columns
for the first time.

dict_table_t::instant_column(), ha_innobase_inplace_ctx::instant_column():
Return whether the metadata record needs to be updated.
2018-12-27 16:31:27 +02:00
Teodor Mircea Ionita
3b5e8d799a travis: Fix ccache not used on macOS targets 2018-12-27 14:07:55 +00:00
Teodor Mircea Ionita
e2939795b1 travis: Fix ccache not used on macOS targets 2018-12-27 14:06:33 +00:00
Alexander Barkov
f409eb4d36 MDEV-17959 Assertion `opt_bootstrap || mysql_parse_status || thd->lex->select_stack_top == 0' failed in parse_sql upon DELETE HISTORY under ORACLE mode 2018-12-27 10:32:33 +04:00
Teodor Mircea Ionita
829fce9ea6 travis: upgrade Ubuntu target dist to 16.04 Xenial
Ubuntu 14.04 Trusty is LTS until April 2019 and since we are
approaching that, upgrade to Xenial which is LTS until April 2021.

One bonus of this upgrade is that the Travis Xenial virtual images
have a much bigger disk size, thus no need to limit ccache below
the default of 5G anymore.

Also had to remove linux/clang-8 toolchain testing since
llvm-toolchain-xenial is not listed at:
https://github.com/travis-ci/apt-source-safelist/blob/master/ubuntu.json

And fails with:
Disallowing sources: llvm-toolchain-xenial
...
E: Unable to locate package clang-8
E: Unable to locate package llvm-8-dev
2018-12-26 16:26:36 +00:00
Alexander Barkov
d89d12e3b7 MDEV-17759 Assertion `precision > 0' failed in decimal_bin_size upon CREATE TABLE .. SELECT 2018-12-26 12:10:50 +04:00
Sergei Petrunia
734029fa79 Fix a trivial (and harmless) merge error 2018-12-26 00:00:49 +03:00
Shinnok
838c196f26
Merge pull request #937 from grooverdan/10.4-travis
10.4 travis - newer compilers, ignore common clang warnings
2018-12-25 11:39:13 +00:00
Alexander Barkov
ca619ed123 MDEV-18072 Assertion `is_null() == item->null_value || conv' failed in Timestamp_or_zero_datetime_native_null::Timestamp_or_zero_datetime_native_null upon query with GROUP BY 2018-12-25 10:23:20 +04:00
Alexander Barkov
7d7df70c11 MDEV-18070 Assertion `nanoseconds <= 1000000000' failed in Temporal::add_nanoseconds_ssff with TIME_ROUND_FRACTIONAL
The previous patch was erroneously marked as MDEV-18072.
It was actualy for MDEV-18070.
2018-12-25 08:31:09 +04:00
Alexander Barkov
b316989223 MDEV-18072 Assertion `is_null() == item->null_value || conv' failed in Timestamp_or_zero_datetime_native_null::Timestamp_or_zero_datetime_native_null upon query with GROUP BY 2018-12-25 08:27:07 +04:00
Daniel Bartholomew
835f49d9ce bump the VERSION 2018-12-24 09:22:55 -05:00
Sergei Golubchik
812bb1303c (still) Packaging is broken for debian-based systems
fix the AWS SDK build eligibility checks.

followup for 779151db80
2018-12-24 11:06:19 +01:00
Jan Lindström
97181d84f9
Merge pull request #1051 from tempesta-tech/sysprg/MDEV-18064
MDEV-18064: Packaging is broken for debian-based systems
2018-12-23 06:06:51 +02:00
Julius Goryavsky
1a4248ad6c MDEV-18064: Packaging is broken for debian-based systems
Packaging is broken for debian-based systems after removing
xtrabackup scripts. This is due to the fact that links to the
scripts are not removed from the installation file
(from the debian/mariadb-server-10.3.install).

Also in this fix some comments have been added to the
documentation, indicating that using xtrabackup[-v2] is
an deprecated, therefore user should use mariabackup instead.

https://jira.mariadb.org/browse/MDEV-18064
2018-12-23 01:10:59 +01:00
Rakshit Kumar
9ad1663f78 Grammatical errors of README-wsrep fixed. (#915)
Docs grammar fixed
2018-12-22 13:34:50 +04:00
Vladislav Vaintroub
975f4a1295 Add forgotten .opt file. 2018-12-21 19:45:30 +01:00
Elena Stepanova
b82df71174 Updated list of unstable tests for 10.2.20 2018-12-21 18:59:11 +02:00
Elena Stepanova
242fedf595 Follow-up for MDEV-14576 - updated test result 2018-12-21 18:58:23 +02:00
Marko Mäkelä
a8eb0c76bf MDEV-18048: Relax a too strict debug assertion
This assertion should have been relaxed when implementing the first part of
MDEV-15563: instant removal of NOT NULL attribute for ROW_FORMAT=REDUNDANT
tables.

For ROW_FORMAT=REDUNDANT, there is no bitmap of null columns;
the null flags are encoded in the end offset of each field.
We do not really care about the number of fields that can be NULL.
2018-12-21 17:43:01 +02:00
Marko Mäkelä
ccb1acbd3c MDEV-18035 Failing assertion on DELETE
instant_alter_column_possible(): Do not allow instant removal of NOT NULL
attribute from a column that belongs to the key of the clustered index.
2018-12-21 17:43:01 +02:00
Vladislav Vaintroub
773479f5b3 Add test for partial backup for partitioned table. 2018-12-21 16:04:16 +01:00
Teodor Mircea Ionita
779151db80 autobake-deb: fixes for AWS SDK build eligibility checks.
Add check for git command and test for internet connectivity
using bash /dev/tcp interface, instead of wget and curl which might
not be available, thus reducing dependencies for this script.
2018-12-21 13:44:14 +01:00
Sergei Golubchik
2cf30866d7 MDEV-14576 Include full name of object in message about incorrect value for column
update engines/ suites

followup for c4ab352b67
2018-12-21 13:31:18 +01:00
Sergei Golubchik
37b1b065f4 TokuDB: generate tokudb.cnf unconditionally
it's listed in MYSQL_ADD_PLUGIN() declaration,
so it must always exist, jemalloc or not.
2018-12-21 11:38:42 +01:00
Marko Mäkelä
c5bb6024a7 MDEV-18039 Assertion failed in btr_node_ptr_max_size for VARCHAR(0)
btr_node_ptr_max_size(): Do not reserve extra space for indexed VARCHAR(0)
columns.
2018-12-21 12:12:57 +02:00
Eugene Kosov
0dafcf529c cleanup os_event 2018-12-21 10:16:03 +02:00
Eugene Kosov
ed166f53fa MDEV-18043 data race in os_event
os_event::is_set(): protect os_event::m_set with os_event::mutex
2018-12-21 10:16:03 +02:00
Marko Mäkelä
b7a9563b21 Merge 10.1 into 10.2 2018-12-21 09:43:35 +02:00
Marko Mäkelä
40a094e4a8 Relax a too tight suppression
When using a wrong key, all encrypted pages will look corrupted,
and occasionally the test may access other pages than
the clustered index root page.
2018-12-21 09:40:36 +02:00
Alexander Barkov
e631ea4a7c MDEV-17738 Server crashes in Item::delete_self on closing connection after unsuccessful PS
Also fixes:
MDEV-17741 Assertion `thd->Item_change_list::is_empty()' failed in mysql_parse after unsuccessful PS

The problem was introduced by:
  commit f033fbd9f2
  Changed the test case for MDEV-15571

It was later fixed, but in 10.3 only:

  commit ce2cf855bf
  MDEV-16043 Assertion thd->Item_change_list::is_empty() failed in mysql_parse
  upon SELECT from a view reading from a versioned table

This patch is a backport of ce2cf855bf to 10.2
2018-12-21 09:41:23 +04:00
Marko Mäkelä
2fe40a7af0 MDEV-18009 Missing redo log flush in innodb.instant_alter_crash
Ensure that the 'auxiliary transactions' that are there for
flushing the incomplete undo log of the to-be-recovered DDL
transactions are actually making modifications.
2018-12-20 18:18:21 +02:00
Daniel Bartholomew
505f283189 bump the VERSION 2018-12-20 11:07:40 -05:00
Oleksandr Byelkin
2999492c32 MDEV-16036: Debug assertion failed in resignal on create temporary table
Reising condition on NOTW controlled by OPTION_SQL_NOTES.
2018-12-20 14:53:31 +01:00