- 02 Jul, 2019 13 commits
-
-
LingBin authored
Uniformly use the `.git` suffix format
-
Sergei Golubchik authored
* in --parallel mode don't copy/symlinks plugins individually in each forked child's vardir, use the common parent vardir with all plugins * move pam plugin specific code from mysql-test-run.pl to suite/plugins/suite.pm
-
Sergei Golubchik authored
(meaning, if MariaDB is installed system-wide, pam tests require mtr to be run as mysql user)
-
Sergei Golubchik authored
fixed in MDEV-19878, here just adding tests
-
Sergei Golubchik authored
* fix incorrect parentheses * if there was no password on the command line or in .cnf file, pkt will be "", and we need to request the user to enter the password
-
Sergei Golubchik authored
* wait() for the child process to die, let it rest in peace * fix incorrect parentheses * if there was no password on the command line or in .cnf file, pkt will be "", and we need to request the user to enter the password * make sure that auth->salt is always allocated on a permanent memroot. when called from set_user_salt_if_needed(), user_copy and its auth_str are on the thd memroot, but auth_copy->salt is then copied to auth->salt * adjust service files so that systemd wouldn't interfere with our setuid executables also * print the pam error message in debug mode
-
Sergei Golubchik authored
in fact, permissions were fine in RPM, but mysql_install_db was resetting them. Also fix Debian, while we're at it
-
Sergei Golubchik authored
and install in mysql-test/suite/plugins/pam so that it could be manually copied into /etc if needed
-
Sergei Golubchik authored
this matches the common behavior with pam_unix and helps to catch password related errors also, use abort() instead of sigsegv to avoid polluting /var/log/messages with intentional crashes
-
Sergei Golubchik authored
-
Sergei Golubchik authored
in /etc/ssl/openssl.cnf as it happens to be on the buster builder
-
Sergei Golubchik authored
-
Sujatha authored
MDEV-19716: ASAN use-after-poison in Query_log_event::Query_log_event / THD::log_events_and_free_tmp_shares Analysis: ======== When a given client session ends on a master, the server logs a DROP TEMPORARY TABLE IF EXISTS statement for each temporary table that still exists in the current session. It ensures a proper temporary table cleanup on the slave. In order to write the DROP TEMPORARY TABLE query in binary log a 'Query_log_event' object is created. Within the 'Query_log_event' constructor 'thd->lex->sql_command' is read to identify what type of cache needs to be used to write the query. When the code reaches here as part of THD::cleanup the 'thd->lex->sql_command' will be in an invalid state. The 'thd->lex' could have been cleared or it could be pointing to a statement which was in the middle of execution when the session ended. In such cases ASAN reports use-after-poison error. Fix: === The 'THD::Cleanup' code invokes 'THD::log_events_and_free_tmp_shares' to look for temporary tables and write appropriate DROP TABLE stmts for them. This cleanup code provides a special flag named 'direct=TRUE' to the Query_log_event constructor. Having 'direct=TRUE' means that this query doesn't require any caching. Hence in this scenario the 'Query_log_event' constructor should respect the 'direct' flag and simply skip the logic of deciding the type of cache to be used for the statement. Hence the code will not access the stale lex object.
-
- 01 Jul, 2019 6 commits
-
-
Marko Mäkelä authored
-
Marko Mäkelä authored
btr_lift_page_up(): Correct the incorrect condition. page_validate(): Validate the page type.
-
Marko Mäkelä authored
page_validate(): Validate also the page type, and try to list all errors that were encountered for the page, with a little more detail.
-
Marko Mäkelä authored
-
Daniel Black authored
-
Ian Gilfillan authored
-
- 30 Jun, 2019 1 commit
-
-
Kentoku SHIBA authored
fix test result of sys_vars.slave_transaction_retry_errors
-
- 28 Jun, 2019 4 commits
-
-
Kentoku SHIBA authored
-
Kentoku SHIBA authored
Add the following parameter. - spider_sync_sql_mode Local sql_mode synchronous existence to remote server. 0 : It doesn't synchronize. 1 : It synchronizes. The default value is 1
-
Marko Mäkelä authored
On clang, use __builtin_readcyclecounter() when available. Hinted by Sergey Vojtovich. (This may lead to runtime failure on ARM systems. The hardware should be available on ARMv8 (AArch64), but access to it may require special privileges.) We remove support for the proprietary Sun Microsystems compiler, and rely on clang or the __GNUC__ assembler syntax instead. For now, we retain support for IA-64 (Itanium) and 32-bit SPARC, even though those platforms are likely no longer widely used. We remove support for clock_gettime(CLOCK_SGI_CYCLE), because Silicon Graphics ceased supporting IRIX in December 2013. This was the only cycle timer interface available for MIPS. On PowerPC, we rely on the GCC 4.8 __builtin_ppc_get_timebase() (or clang __builtin_readcyclecounter()), which should be equivalent to the old assembler code on both 64-bit and 32-bit targets.
-
Kentoku SHIBA authored
error code 12701 is already included in default value, but other plugin specific error codes are ignored because of checking with ER_ERROR_LAST. ER_ERROR_LAST does not include plugin specific error codes. So I just removed it for fixing this issue.
-
- 27 Jun, 2019 5 commits
-
-
Monty authored
The bug was that when long item-strings was converted to VARCHAR, type_handler::string_type_handler() didn't take into account max VARCHAR length. The resulting Aria temporary table was created with a VARCHAR field of length 1 when it should have been 65537. This caused MariaDB to send impossible records to ma_write() and Aria reported eventually the table as crashed. Fixed by updating Type_handler::string_type_handler() to not create too long VARCHAR fields. To make things extra safe, I also added checks in when writing dynamic Aria records to ensure we find the wrong record during write instead of during read.
-
Marko Mäkelä authored
We omit the work-around commit 0b7fa5a0 because it appears to be needed for CentOS 6 only, which we no longer support.
-
Marko Mäkelä authored
On some platforms, MY_RELAX_CPU() falls back to an atomic memory operation, but my_cpu.h fails to include my_atomic.h.
-
Marko Mäkelä authored
The RDTSC instruction, which was introduced in the Intel Pentium, has been used in MariaDB for a long time. But, the __rdtsc() wrapper is not available by default in some x86 build environments. The simplest solution seems to replace the inlined instruction with a call to the wrapper function my_timer_cycles(). The overhead for the call should not affect the measurement threshold. On Windows and on AMD64, we will keep using __rdtsc() directly.
-
Marko Mäkelä authored
Starting with the Intel Skylake microarchitecture, the PAUSE instruction latency is about 140 clock cycles instead of earlier 10. On AMD processors, the latency could be 10 or 50 clock cycles, depending on microarchitecture. Because of this big range of latency, let us scale the loops around the PAUSE instruction based on timing results at server startup. my_cpu_relax_multiplier: New variable: How many times to invoke PAUSE in a loop. Only defined for IA-32 and AMD64. my_cpu_init(): Determine with RDTSC the time to run 16 PAUSE instructions in two unrolled loops according, and based on the quicker of the two runs, initialize my_cpu_relax_multiplier. This form of calibration was suggested by Mikhail Sinyavin from Intel. LF_BACKOFF(), ut_delay(): Use my_cpu_relax_multiplier when available. ut_delay(): Define inline in my_cpu.h. UT_COMPILER_BARRIER(): Remove. This does not seem to have any effect, because in our ut_delay() implementation, no computations are being performed inside the loop. The purpose of UT_COMPILER_BARRIER() was to prohibit the compiler from reordering computations. It was not emitting any code.
-
- 26 Jun, 2019 7 commits
-
-
Monty authored
MDEV-19585 Assertion with S3 table and flush_tables The limit has to be increased so that MariaDB can create system tables. It should not have any notable impact on performance. There should not be any notable performance differences between 1K and 4K, especially for temporary tables. In most cases using bigger blocks is also faster (with the possible exception of doing key reads of not fixed length keys).
-
Monty authored
The problem was two fault: - flush_tables() wrongly gave errors when failing to open read only tables - backup_block_ddl() didn't properly ignores errors from flush_tables() The test case for this will be pushed in 10.5 as the test involves S3 tables.
-
Eugene Kosov authored
os0once.h: remove as not used now
-
Eugene Kosov authored
zip_pad_info_t::mutex_created: remove along with corresponding stuff zip_pad_info_t::mutex: make member value instead of a pointer
-
Eugene Kosov authored
dict_table_t::stats_latch_created: remove along with related stuff dict_table_t::stats_latch: make value member, not pointer. And always lock this for simplicity, even to stats cloned table. based on the work of Sergey Vojtovich
-
Sergey Vojtovich authored
Get rid of os_once.
-
Sachin authored
MDEV-19049 Server crashes in check_duplicate_long_entry_key, ASAN stack-buffer-overflow in Field_blob::get_key_image Long Unique keys should always be last unique key.
-
- 25 Jun, 2019 3 commits
-
-
Vladislav Vaintroub authored
Limit lines to ~16K
-
Igor Babaev authored
The bug occured when the optimizer decided to use a rowid filter built by a range index scan to access an InnoDB table with generated clustered index. When a table is accessed by a secondary index Idx employing a rowid filter the the value of pk contained in the found index tuple is checked against the filter. A call of the handler function position is supposed to put the pk value into the handler::ref buffer. However for generated clustered primary keys it did not happened. The patch fixes this problem.
-
Ian Gilfillan authored
-
- 24 Jun, 2019 1 commit
-
-
Anel Husakovic authored
-