- 01 Aug, 2020 2 commits
-
-
Otto Kekäläinen authored
- Include a link to the relevant KB article for more info - Use spaced around the equal sign for better readability and so that the examples are more aligned with the general style in the KB - Load plugins with just the base name, the .so is optional and excess
-
Otto Kekäläinen authored
Verified by running before and after: mariadb --skip-column-names -e "select plugin_name, plugin_status, plugin_type, plugin_library, plugin_license from information_schema.all_plugins order by plugin_name, plugin_library" Nothing else but exactly this line changed so there are no side effects: -S3 NOT INSTALLED STORAGE ENGINE ha_s3.so GPL +S3 ACTIVE STORAGE ENGINE ha_s3.so GPL Also enrich config file with link to KB and unify option syntax and standard comments.
-
- 31 Jul, 2020 1 commit
-
-
Sergei Golubchik authored
-
- 30 Jul, 2020 9 commits
-
-
Krunal Bauskar authored
MariaDB adopted a hardware optimized crc32c approach on ARM64 starting 10.5. Said implementation of crc32c needs support from target hardware for crc32 and pmull instructions. Existing logic is checking only for crc32 support from target hardware through a runtime check and so if target hardware doesn't support pmull it would cause things to fail/crash. Expanded runtime check to ensure pmull support is also checked on the target hardware along with existing crc32. Thanks to Marko and Daniel for review.
-
Otto Kekäläinen authored
This fixes the Lintian error and thus the Lintian override can also be removed.
-
Otto Kekäläinen authored
- DEB_BUILD_HARDENING is only used with hardening-wrapper which is deprecated in Debian, so remove it - The word 'terse' should be checked in DEB_BUILD_OPTIONS and verbosity controlled by it
-
Otto Kekäläinen authored
TinyCA has not been updated since 2016 and was removed from Debian in 2019 and the dev site https://tinyca.alioth.debian.org/ is offline. See https://tracker.debian.org/pkg/tinyca
-
Otto Kekäläinen authored
- Remove excess build flag from debian/rules that does nothing, introduced wrongly in commit 7cbde2d0. Instead implement the embedded server build skipping on Travis-CI correctly. - Simplify structure by doing all Travis-CI slimdown in one step. - Remove unnecessary -e from sed, as it does nothing. When regex is needed, use -r. Move -i to last so it is close to the file name it has an argument. - Remove backwards compat checks that are no longer relevant as neither Debian Jessie (was before Stretch) nor Ubuntu Trusty (before Xenial) are supported nor built for anymore. For example the GCC 4.8 check if not relevant anymore, since Debian Jessie already has 4.9 and Ubuntu Xenial has 5.3 and there is no GCC < 4.8 around anymore. - Skip building ColumnStore on both Travis-CI and Gitlab-CI as it is way too slow (time) and big (disk space) to pass.
-
Otto Kekäläinen authored
- Remove unnecessary unused files - Remove duplicate encryption configuration sample from sources and re-use the identical file in RPM directory instead - Clean away harmful "default-character-set = utf8mb4" from client config as it is unnecassary (server enforces utf8mb4 anyway by default) and could cause issues with mysqlbinlog and other tools (MDEV-22981). - Update S3 plugin description to be long enough - Remove trailing whitespace from support-files and Debian packaging. - Clean away fixed Lintian issues - Clean away temporary Salsa-CI fixes now that 10.5.4 is out and is fixed - Apply wrap-and-sort -a -v
-
Otto Kekäläinen authored
-
Otto Kekäläinen authored
This fixes the warning emitted during `/etc/init.d/mariadb restart`: WARNING: tempfile is deprecated; consider using mktemp instead.
-
Otto Kekäläinen authored
-
- 28 Jul, 2020 7 commits
-
-
Marko Mäkelä authored
At least since commit 6a7be48b InnoDB appears to be invoking buf_flush_note_modification() on pages that were exclusively latched but not modified in a mini-transaction. MTR_MEMO_MODIFY, mtr_t::modify(): Define not only in debug code, but also in release code. We will set the MTR_MEMO_MODIFY flag on the earliest mtr_t::m_memo entry that we find. MTR_LOG_NONE: Only use this mode in cases where the previous mode will be restored before anything is modified in the mini-transaction. MTR_MEMO_PAGE_X_MODIFY, MTR_MEMO_PAGE_SX_MODIFY: The allowed flag combinations that include MTR_MEMO_MODIFY. ReleaseBlocks: Only invoke buf_flush_note_modification() on those buffer pool blocks on which mtr_t::set_modified() and mtr_t::modify() were invoked.
-
Marko Mäkelä authored
In MDEV-21724 or possibly already in MDEV-12353 a bug was introduced to the handling of temporary tables. Whether or not redo log will be written, mtr_t::set_modified() must be invoked to register any changes to a page. page_cur_insert_rec_low(): Invoke mtr_t::set_modified() also when skipping the redo log write.
-
Roman Nozdrin authored
DEB package doesn't need expect and libreadline as dependencies RPM packages now depends on jemalloc again
-
Daniel Black authored
On FreeBSD (and possibly elsewhere) the FindPackage(curl) may have found the curl library in a non-standard directory. We use the exposed path as a library path to correct linking.
-
Daniel Black authored
Small postfix to MDEV-23175 to ensure faster option on FreeBSD and compatibility to Solaris that isn't high resolution. ftime is left as a backup in case an implementation doesn't contain any of these clocks. FreeBSD $ ./unittest/mysys/my_rdtsc-t 1..11 # ----- Routine --------------- # myt.cycles.routine : 5 # myt.nanoseconds.routine : 11 # myt.microseconds.routine : 13 # myt.milliseconds.routine : 11 # myt.ticks.routine : 17 # ----- Frequency ------------- # myt.cycles.frequency : 3610295566 # myt.nanoseconds.frequency : 1000000000 # myt.microseconds.frequency : 1000000 # myt.milliseconds.frequency : 899 # myt.ticks.frequency : 136 # ----- Resolution ------------ # myt.cycles.resolution : 1 # myt.nanoseconds.resolution : 1 # myt.microseconds.resolution : 1 # myt.milliseconds.resolution : 7 # myt.ticks.resolution : 1 # ----- Overhead -------------- # myt.cycles.overhead : 26 # myt.nanoseconds.overhead : 19140 # myt.microseconds.overhead : 19036 # myt.milliseconds.overhead : 578 # myt.ticks.overhead : 21544 ok 1 - my_timer_init() did not crash ok 2 - The cycle timer is strictly increasing ok 3 - The cycle timer is implemented ok 4 - The nanosecond timer is increasing ok 5 - The nanosecond timer is implemented ok 6 - The microsecond timer is increasing ok 7 - The microsecond timer is implemented ok 8 - The millisecond timer is increasing ok 9 - The millisecond timer is implemented ok 10 - The tick timer is increasing ok 11 - The tick timer is implemented
-
Daniel Black authored
Previous test failure: --- /Users/travis/build/grooverdan/mariadb-server/mysql-test/main/mysqld--help-aria.result 2020-04-29 03:44:40.000000000 +0000 +++ /Users/travis/build/grooverdan/mariadb-server/mysql-test/main/mysqld--help-aria.reject 2020-04-29 04:19:13.000000000 +0000 @@ -1,3 +1,4 @@ +[Warning] Setting lower_case_table_names=2 because file system for /Users/travis/build/grooverdan/mariadb-server/mysql-test/var/4/mariadbd.1/data/ is case insensitive [ERROR] mariadbd: Can't lock aria aria_log_control for exclusive use, error: #. Will retry for 0 seconds [ERROR] Plugin 'Aria' init function returned error. [ERROR] Plugin 'Aria' registration as a STORAGE ENGINE failed. @@ -9,4 +10,5 @@ # # Check with existing directory # +[Warning] Setting lower_case_table_names=2 because file system for /Users/travis/build/grooverdan/mariadb-server/mysql-test/var/tmp/4/help/ is case insensitive [Warning] Could not open mysql.plugin table: "Table 'mysql.plugin' doesn't exist". Some options may be missing from the help text
-
Daniel Black authored
-
- 24 Jul, 2020 1 commit
-
-
Thirunarayanan Balathandayuthapani authored
commit b1ab211d (MDEV-15053) introduced the code to unfix the block earlier in buf_block_t::unfix(). After unfixing the block, InnoDB can withdraw the block from the buffer pool and deallocate it while doing buffer pool resizing. So subsequent assert could leads to uninitialized memory access of block. buf_block_t::unfix(): Unfix the block after checking the assert.
-
- 23 Jul, 2020 12 commits
-
-
Varun Gupta authored
An overflow was happening with LONGTEXT columns, when the length was converted to the length in the strxfrm form (mem-comparable keys). Introduced a function to truncate the length to the max_sort_length before calculating the length of the strxfrm form.
-
Jan Lindström authored
Changes to be committed: modified: mysql-test/suite/galera_3nodes/t/GCF-354.test modified: mysql-test/suite/galera_3nodes/t/inconsistency_shutdown.test
-
Monty authored
This happend when using XA transactions. I also added some extra asserts to ensure that m_transactions are properly cleared. Other things: - Removed set_time() from THD::init_for_queries() as dispatch_command() is already doing that. - Removed duplicate init_for_queries() from prepare_new_connection_state(). The init_for_queries() functions should only be called once per connection.
-
Monty authored
This patch ensures that all identical character sets shares the same cs->csname. This allows us to replace strcmp() in my_charset_same() with comparisons of pointers. This fixes a long standing performance issue that could cause as strcmp() for every item sent trough the protocol class to the end user. One consequence of this patch is that we don't allow one to add a character definition in the Index.xml file that changes the csname of an existing character set. This is by design as changing character set names of existing ones is extremely dangerous, especially as some storage engines just records character set numbers. As we now have a hash over character set's csname, we can in the future use that for faster access to a specific character set. This could be done by changing the hash to non unique and use the hash to find the next character set with same csname.
-
Monty authored
-
Monty authored
-
Monty authored
The problem was that field_count is not initialized for the Protocol variable used when printing metadata.
-
Monty authored
- Better to use 'String *' directly. - Added String::get_value(LEX_STRING*) for the few cases where we want to convert a String to LEX_CSTRING. Other things: - Use StringBuffer for some functions to avoid mallocs
-
Monty authored
- Should speed up replication
-
Monty authored
- Removed val_str() and print() as these are handled by Item_int() - Use local StringBuffer for Item_int::print() to avoid mallocs
-
Marko Mäkelä authored
-
Marko Mäkelä authored
Starting with MDEV-17441 we would no longer have os_once, and we would always initialize zip_pad_info_t::mutex and dict_table_t::autoinc_mutex, even for tables are not in ROW_FORMAT=COMPRESSED nor include any AUTO_INCREMENT column. mutex_free() on those unnecessary objects would make shutdown very slow compared to older versions. Let us use std::mutex for those two mutexes, to reduce the overhead. The critical sections protected by these mutexes is very small, and therefore contention or the need for any instrumentation should be unlikely.
-
- 22 Jul, 2020 7 commits
-
-
Oleksandr Byelkin authored
If there is no current_select and variable is not found among SP variables it can be only an error.
-
Thirunarayanan Balathandayuthapani authored
MDEV-23252 Assertion failure 'req_type.is_dblwr_recover() || err == DB_SUCCESS' for page_compressed tables - This issue is caused by a5584b13 (MDEV-15528). os_file_punch_hole() is added to fil_io() in MDEV-15528. But it fails to handle failure of os_file_punch_hole(). InnoDB should handle the DB_IO_NO_PUNCH_HOLE error and silently transform to DB_SUCCESS. InnoDB should set the punch hole flag correctly when tablespace is loaded fil_node_t::read_page0(): Set the punch hole flag when tablespace is loaded fil_io(): Handle the DB_IO_NO_PUNCH_HOLE error buf_flush_free_pages(): Checks the punch hole condition earlier using tablespace punch hole flag
-
Thirunarayanan Balathandayuthapani authored
InnoDB should replace FSP_FLAGS_HAS_PAGE_COMPRESSION check with fil_space_t::is_compressed(). fil_space_t::is_compressed() checks for both non full crc32 and crc32 format.
-
Jan Lindström authored
-
Thirunarayanan Balathandayuthapani authored
InnoDB should replace FSP_FLAGS_HAS_PAGE_COMPRESSION check with fil_space_t::is_compressed(). fil_space_t::is_compressed() checks for both non full crc32 and crc32 format.
-
Jan Lindström authored
-
sjaakola authored
When high priority replication slave applier encounters lock conflict in innodb, it will force the conflicting lock holder transaction (victim) to rollback. This is a must in multi-master sychronous replication model to avoid cluster lock-up. This high priority victim abort (aka "brute force" (BF) abort), is started from innodb lock manager while holding the victim's transaction's (trx) mutex. Depending on the execution state of the victim transaction, it may happen that the BF abort will call for THD::awake() to wake up the victim transaction for the rollback. Now, if BF abort requires THD::awake() to be called, then the applier thread executed locking protocol of: victim trx mutex -> victim THD::LOCK_thd_data If, at the same time another DBMS super user issues KILL command to abort the same victim, it will execute locking protocol of: victim THD::LOCK_thd_data -> victim trx mutex. These two locking protocol acquire mutexes in opposite order, hence unresolvable mutex locking deadlock may occur. The fix in this commit adds THD::wsrep_aborter flag to synchronize who can kill the victim This flag is set both when BF is called for from innodb and by KILL command. Either path of victim killing will bail out if victim's wsrep_killed is already set to avoid mutex conflicts with the other aborter execution. THD::wsrep_aborter records the aborter THD's ID. This is needed to preserve the right to kill the victim from different locations for the same aborter thread. It is also good error logging, to see who is reponsible for the abort. A new test case was added in galera.galera_bf_kill_debug.test for scenario where wsrep applier thread and manual KILL command try to kill same idle victim
-
- 21 Jul, 2020 1 commit
-
-
Marko Mäkelä authored
-