- 10 Apr, 2020 3 commits
-
-
Vladislav Vaintroub authored
Stop linking plugins to the server executable on Windows. Instead, extract whole server functionality into a large DLL, called server.dll. Link both plugins, and small server "stub" exe to it. This eliminates plugin dependency on the name of the server executable. It also reduces the size of the packages (since tiny mysqld.exe and mariadbd.exe are now both linked to one big DLL) Also, simplify the functionality of exporing all symbols from selected static libraries. Rely on WINDOWS_EXPORT_ALL_SYMBOLS, rather than old self-backed solution. fix compile error replace GetProcAddress(GetModuleHandle(NULL), "variable_name") for server exported data with actual variable names. Runtime loading was never required,was error prone , since symbols could be missing at runtime, and now it actually failed, because we do not export symbols from executable anymore, but from a shared library This did require a MYSQL_PLUGIN_IMPORT decoration for the plugin, but made the code more straightforward, and avoids missing symbols at runtime (as mentioned before). The audit plugin is still doing some dynamic loading, as it aims to work cross-version. Now it won't work cross-version on Windows, as it already uses some symbols that are *not* dynamically loaded, e.g fn_format and those symbols now exported from server.dll , when earlier they were exported by mysqld.exe Windows, fixes for storage engine plugin loading after various rebranding stuff Create server.dll containing functionality of the whole server make mariadbd.exe/mysqld.exe a stub that is only calling mysqld_main() fix build
-
Vladislav Vaintroub authored
-
Vladislav Vaintroub authored
This broke clang-cl, apparently when compiling version resource file with RC tool, because RC would not aceept -Wxxx at all.
-
- 09 Apr, 2020 2 commits
-
-
Thirunarayanan Balathandayuthapani authored
- InnoDB is doing un-necessary redo log page initialisation during recovery and unnecessary traversal of redo log during last phase. This patch does the optimization of removing unnecessary redo log page initialisation and detects the memory exhaust earlier.
-
Varun Gupta authored
overflow happening when we add suffix length to sortlength. Make sure that sortlength is at max UINT_MAX32
-
- 08 Apr, 2020 14 commits
-
-
Jan Lindström authored
Fixed incorrect pointer reference when table is not available.
-
Sergey Vojtovich authored
-
Daniel Black authored
On by default, suppress "fallback to conventional memory" warnings as we're never sure what the test has available. Leave off Windows test for now. Running without SeLockMemoryPrivilege is fatal if --large-pages is specified.
-
Daniel Black authored
-
Daniel Black authored
-
Daniel Black authored
-
Daniel Black authored
-
Daniel Black authored
-
Daniel Black authored
-
Daniel Black authored
-
Daniel Black authored
Both Windows and MMAP capable implementations fell back to a non-MEM_LARGE_PAGES/HugeTLB allocation with the large page implementaion failed. These can can be freed by the corresponding function. Prior to this, if we fell back to a conventional memory, than will results in deallocation using munmap/VirtualFree on a memory allocated using my_malloc_lock. At worst this could succeed and the my_malloc_lock looses its memory without knowing about it.
-
Marko Mäkelä authored
-
Marko Mäkelä authored
The bug was already fixed in commit 1242eb3d but the test innodb.innodb_wl6326 had not been enabled.
-
Rasmus Johansson authored
Changed wording in error messages from MySQL to MariaDB. In cases where the word server could be used instead it was done. Tests that have these errors recorded were updated.
-
- 07 Apr, 2020 3 commits
-
-
Marko Mäkelä authored
-
Marko Mäkelä authored
In a multi-batch recovery, we must ensure that INIT_PAGE and especially the MDEV-15528 FREE_PAGE records will be taken properly into account. Writing a FREE_PAGE record gives the server permission to omit a page write. If recovery insists on applying log to a page whose page flush has been omitted, then the consistency checks in the application of high-level redo log records (appending an undo log record, inserting or deleting an index record) will likely fail. mlog_init_t::add(): Return whether the state was changed. mlog_init_t::will_avoid_read(): Determine whether a page read will be avoided and whether older log records can be safely skipped. recv_sys_t::parse(): Even if store==STORE_NO, process the records INIT_PAGE and FREE_PAGE. While processing them, we can delete older redo log records for the page. If store!=STORE_NO, we can directly skip redo log recods of other types if mlog_init indicates that the page will be freed or initialized by at a later LSN. This fix was developed in cooperation with Thirunarayanan Balathandayuthapani.
-
Daniel Black authored
Also executable can change for jemalloc.
-
- 06 Apr, 2020 5 commits
-
-
Daniel Black authored
-
Elena Stepanova authored
Comma is reported not to work on older systems/ASAN versions
-
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
Backported from 30b44aae.
-
Aleksey Midenkov authored
ADD default history partitions generates wrong partition name, f.ex. p2 instead of p1. Gap in sequence of partition names leads to ha_partition::open_read_partitions() fail on inexistent name. Manual fixing such broken table requires: 1. create empty table by any name (t_empty) with correct number of partitions; 2. stop the server; 3. rename data files (.myd, .myi or .ibd) of broken table to t_empty fixing the partition sequence (#p2 to #p1, #p3 to #p2); 4. start the server; 5. drop the broken table; 6. rename t_empty to correct table name.
-
- 05 Apr, 2020 8 commits
-
-
Sergey Vojtovich authored
-
Daniel Black authored
Order to avoid prototypes: my_get_large_page_sizes my_next_large_page my_init_large_pages my_large_malloc my_large_free
-
Daniel Black authored
-
Daniel Black authored
-
Daniel Black authored
For platforms != Windows and without MMAP.
-
Daniel Black authored
-
Daniel Black authored
Consolidated single page size implementations by populating my_large_page_sizes with a single page size.
-
Daniel Black authored
-
- 04 Apr, 2020 5 commits
-
-
Otto Kekäläinen authored
-
Otto Kekäläinen authored
The package libcurl4-dev is a virtual package, and no package with that name actually exists. Depend on libcurl4-openssl-dev as the primary option in case no libcurl4-dev providing package has been installed, and if some of them (libcurl4-gnutls-dev, libcurl4-nss-dev, libcurl4-openssl-dev ) are installed, they also satisfy the dependency via the virtual package. The Travis-CI still runs on libcurl3-dev as Travis-CI also runs Ubuntu Xenial which does not yet have libcurl4 available. This complements commit 2e0a40bd.
-
Otto Kekäläinen authored
The package libdbd-mariadb-perl has been available in Debian September 2018, so it is already included since Debian Buster and Ubuntu Disco. Use it as the primary Recommends for MariaDB client binaries, but keep the MySQL variant as a fall-back in case this package gets backported to older releases that did not yet have it. This change was done in downstream Debian packaging in https://salsa.debian.org/mariadb-team/mariadb-10.4/-/commit/bb4ad78bc10a1b52558c4c30600a02e30c4ce0a9
-
Otto Kekäläinen authored
Don't include variables that are empty and unused.
-
Otto Kekäläinen authored
This fixes Lintian errors and warnings: E: mariadb-client-10.5: manpage-not-compressed usr/share/man/man1/mariadb-analyze.1 E: mariadb-client-10.5: manpage-not-compressed usr/share/man/man1/mariadb-optimize.1 E: mariadb-client-10.5: manpage-not-compressed usr/share/man/man1/mariadb-repair.1 E: mariadb-client-10.5: manpage-not-compressed usr/share/man/man1/mysqlanalyze.1 E: mariadb-client-10.5: manpage-not-compressed usr/share/man/man1/mysqloptimize.1 E: mariadb-client-10.5: manpage-not-compressed usr/share/man/man1/mysqlrepair.1 W: mariadb-client-10.5: binary-without-manpage usr/bin/mariadb-conv W: libmariadb-dev: binary-without-manpage usr/bin/mariadb_config If the binary name is mariadb_config, the manpage needs to be mariadb_config.1. Also run 'wrap-and-sort -a -v' to get lists in correct order. In addition, sort .gitignore and remove duplicate lines.
-