- 21 Mar, 2020 5 commits
-
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
The code that commit bb24fa31 moved to a separate file assume_aligned.h was introduced in commit 25e2a556 and developed by employees of MariaDB Corporation.
-
Daniele Sciascia authored
* Remove dead code * MDEV-21675 Data inconsistency after multirow insert rollback This patch fixes data inconsistencies that happen after rollback of multirow inserts, with binlog disabled. For example, statements such as `INSERT INTO t1 VALUES (1,'a'),(1,'b')` that fail with duplicate key error. In such cases the whole statement is rolled back. However, with wsrep_emulate_binlog in effect, the IO_CACHE would not be truncated, and the pending rows events would be replicated to the rest of the cluster. In the above example, it would result in row (1,'a') being replicated, whereas locally the statement is rolled back entirely. Making the cluster inconsistent. The patch changes the code so that prior to statement rollback, pending rows event are removed and the stmt cache reset. That patch also introduces MTR tests that excercise multirow insert statements for regular, and streaming replication.
-
- 20 Mar, 2020 13 commits
-
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
Also, clean up the test innodb_gis.geometry a little further.
-
Eugene Kosov authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
Remove CREATE/DROP database. Remove some unnecessary suppressions, replacements, and SQL statements. Populate tables via have_sequence.inc to avoid the creation of explicit InnoDB record locks in INSERT...SELECT. This will remove some gaps in AUTO_INCREMENT values.
-
Marko Mäkelä authored
After MDEV-12353, the consistency check that I originally added for commit 1b9fe0bb (InnoDB Plugin for MySQL 5.1) started randomly failing. It turns out that the IMPORT TABLESPACE code was always incorrect: it did not update the (redundantly stored) tablespace ID in index tree root pages. It only does that for page headers and BLOB pointers. PageConverter::update_index_page(): Update the tablespace ID in the BTR_SEG_TOP and BTR_SEG_LEAF of index root pages.
-
Marko Mäkelä authored
-
seppo authored
Forcing wait on nodes 2 and 3, to turn wsrep_ready to 'ON' before querying wsrep status variables. This guarantees that status reads don't come too early on these nodes
-
Jan Lindström authored
-
Alexander Barkov authored
The problem happened in these line: uval0= (ulonglong) (val0_negative ? -val0 : val0); uval1= (ulonglong) (val1_negative ? -val1 : val1); return check_integer_overflow(val0_negative ? -(longlong) res : res, !val0_negative); when unary minus was performed on -9223372036854775808. This behavior is undefined in C/C++.
-
Marko Mäkelä authored
After MDEV-12353, the consistency check that I originally added for commit 1b9fe0bb (InnoDB Plugin for MySQL 5.1) started randomly failing. It turns out that the IMPORT TABLESPACE code was always incorrect: it did not update the (redundantly stored) tablespace ID in index tree root pages. It only does that for page headers and BLOB pointers. PageConverter::update_index_page(): Update the tablespace ID in the BTR_SEG_TOP and BTR_SEG_LEAF of index root pages.
-
Daniele Sciascia authored
A large INSERT would occasionally fail with a deadlock error. This is due to a limitation in galera library: large writesets that are internally fragmented (> 32KB), may fail to replicate during a configuration change. Even if the configuration change is from primary to primary. Changed the test to reduce writeset sizes from ~65K to ~16K.
-
- 19 Mar, 2020 11 commits
-
-
Marko Mäkelä authored
Several macros such as sint2korr() and uint4korr() are using the arithmetic + operator while a bitwise or operator would suffice. GCC 5 and clang 5 and later can detect patterns consisting of bitwise or and shifts by multiples of 8 bits, such as those used in the InnoDB function mach_read_from_4(). They actually translate that verbose low-level code into high-level machine language (i486 bswap instruction or fused into the Haswell movbe instruction). We should do the same for MariaDB Server code that is outside InnoDB. Note: The Microsoft C compiler is lacking this optimization. There, we might consider using _byteswap_ushort(), _byteswap_ulong(), _byteswap_uint64(). But, those would lead to unaligned reads, which are bad for reasons stated in MDEV-20277. Besides, outside InnoDB, most data is already being stored in the native little-endian format of that compiler.
-
Marko Mäkelä authored
fil_delete_tablespace(): Remove the unused parameter drop_ahi, and add the parameter if_exists=false. We want to suppress error messages if we know that the tablespace has been discarded. dict_table_rename_in_cache(): Pass the new parameter to fil_delete_tablespace(), that is, do not complain about missing tablespace if the tablespace has been discarded. row_make_new_pathname(): Declare as static. row_drop_table_for_mysql(): Tolerate !table->data_dir_path when the tablespace has been discarded. row_rename_table_for_mysql(): Skip part of the RENAME TABLE when fil_space_get_first_path() returns NULL.
-
Marko Mäkelä authored
buf_pool_resize(): Simplify the fault injection for innodb.buf_pool_resize_oom. innodb.buf_pool_resize_oom: Use a small buffer pool. innodb.innodb_buffer_pool_load_now: Make use of the sequence engine, to avoid creating explicit InnoDB record locks. Clean up the accesses to information_schema.innodb_buffer_page_lru.
-
Jan Lindström authored
-
Jan Lindström authored
-
https://github.com/codership/mariadb-serverJan Lindström authored
Merge branch '10.4-MDEV-19966' of https://github.com/codership/mariadb-server into codership-10.4-MDEV-19966
-
Marko Mäkelä authored
Adapt from 10.2: git cherry-pick bfb5e1c3 buf_pool_t::chunk_t::create(), buf_pool_t::resize(): Restore or simplify the debug instrumentation. buf_resize_callback(): Add DBUG_ENTER/DBUG_VOID_RETURN so that the DBUG_EXECUTE_IF in buf_pool_t::resize() can be triggered.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
Marko Mäkelä authored
-
- 18 Mar, 2020 11 commits
-
-
Andrei Elkin authored
Testing is extended with a block added up to binlog_grant.
-
Otto Kekäläinen authored
The purpose of a CI system is to validate if a change is acceptable or not. Thus tests that always fail should be ignored, otherwise the result of the CI (green/red) is not reliable and actionable.
-
Otto Kekäläinen authored
There is a 4 MB hard limit on Travis-CI and build output needs to be less than that. Silencing the 'make install' step gets rid of a lot of "Installing.." and "Missing.." and removing all mysql-test files will make the dh_missing warnings much shorter.
-
Otto Kekäläinen authored
Package contents before this fix: libmariadb-dev-compat drwxr-xr-x root/root ./ drwxr-xr-x root/root ./usr/ drwxr-xr-x root/root ./usr/bin/ lrwxrwxrwx root/root ./usr/bin/mysql_config drwxr-xr-x root/root ./usr/include/ lrwxrwxrwx root/root ./usr/include/mysql drwxr-xr-x root/root ./usr/lib/ drwxr-xr-x root/root ./usr/lib/${DEB_HOST_MULTIARCH}/ drwxr-xr-x root/root ./usr/lib/${DEB_HOST_MULTIARCH}/pkgconfig/ lrwxrwxrwx root/root ./usr/lib/${DEB_HOST_MULTIARCH}/pkgconfig/mysqlclient.pc drwxr-xr-x root/root ./usr/lib/x86_64-linux-gnu/ lrwxrwxrwx root/root ./usr/lib/x86_64-linux-gnu/libmysqlclient.a lrwxrwxrwx root/root ./usr/lib/x86_64-linux-gnu/libmysqlclient_r.a lrwxrwxrwx root/root ./usr/lib/x86_64-linux-gnu/libmysqlclient_r.so lrwxrwxrwx root/root ./usr/lib/x86_64-linux-gnu/libmysqlclient.so drwxr-xr-x root/root ./usr/share/ drwxr-xr-x root/root ./usr/share/doc/ drwxr-xr-x root/root ./usr/share/doc/libmariadb-dev-compat/ -rw-r--r-- root/root ./usr/share/doc/libmariadb-dev-compat/changelog.gz -rw-r--r-- root/root ./usr/share/doc/libmariadb-dev-compat/copyright With this fix the '/usr/lib/${DEB_HOST_MULTIARCH}/' becomes correctly populated with the actual architecture dependent path. Also add dh-exec to Travis-CI testing so that CI passes. As an extra small thing, clean away excess executable bit from Mroonga plugin maintainer script that does not need it.
-
Otto Kekäläinen authored
If libpcre2 (10.x) is not defined and only the older libpcre3 (8.x) would be available, the build would attempt to download it from the Internet, violating many build environment restrictions. Commit b6b69806 attempted to fix MDEV-21942 but was incomplete, and after in CI systems started failing since the .travis.yml update was missing.
-
Vicențiu Ciorbaru authored
-
Marko Mäkelä authored
Thanks to MDEV-15058, there is only one InnoDB buffer pool. Allocating buf_pool statically removes one level of pointer indirection and makes code more readable, and removes the awkward initialization of some buf_pool members. While doing this, we will also declare some buf_pool_t data members private and replace some functions with member functions. This is mostly affecting buffer pool resizing. This is not aiming to be a complete rewrite of buf_pool_t to a proper class. Most of the buffer pool interface, such as buf_page_get_gen(), will remain in the C programming style for now. buf_pool_t::withdrawing: Replaces buf_pool_withdrawing. buf_pool_t::withdraw_clock_: Replaces buf_withdraw_clock. buf_pool_t::create(): Repalces buf_pool_init(). buf_pool_t::close(): Replaces buf_pool_free(). buf_bool_t::will_be_withdrawn(): Replaces buf_block_will_be_withdrawn(), buf_frame_will_be_withdrawn(). buf_pool_t::clear_hash_index(): Replaces buf_pool_clear_hash_index(). buf_pool_t::get_n_pages(): Replaces buf_pool_get_n_pages(). buf_pool_t::validate(): Replaces buf_validate(). buf_pool_t::print(): Replaces buf_print(). buf_pool_t::block_from_ahi(): Replaces buf_block_from_ahi(). buf_pool_t::is_block_field(): Replaces buf_pointer_is_block_field(). buf_pool_t::is_block_mutex(): Replaces buf_pool_is_block_mutex(). buf_pool_t::is_block_lock(): Replaces buf_pool_is_block_lock(). buf_pool_t::is_obsolete(): Replaces buf_pool_is_obsolete(). buf_pool_t::io_buf: Make default-constructible. buf_pool_t::io_buf::create(): Delayed 'constructor' buf_pool_t::io_buf::close(): Early 'destructor' HazardPointer: Make default-constructible. Define all member functions inline, also for derived classes.
-
Vicențiu Ciorbaru authored
-
Vicențiu Ciorbaru authored
-
Alexander Barkov authored
MDEV-21975 Add BINLOG REPLAY privilege and bind new privileges to gtid_seq_no, preudo_thread_id, server_id, gtid_domain_id
-
Marko Mäkelä authored
-