1. 10 Apr, 2020 3 commits
    • Vladislav Vaintroub's avatar
      MDEV-22214 mariadbd.exe calls function mysqld.exe, and crashes · 93efbc39
      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
      93efbc39
    • Vladislav Vaintroub's avatar
    • Vladislav Vaintroub's avatar
      CMake : Do not add compile flags, such as -Wconversion with ADD_DEFINITIONS · 11cebb4a
      Vladislav Vaintroub authored
      This broke clang-cl, apparently when compiling version resource file with
      RC tool, because RC would not aceept -Wxxx at all.
      11cebb4a
  2. 09 Apr, 2020 2 commits
  3. 08 Apr, 2020 14 commits
  4. 07 Apr, 2020 3 commits
    • Marko Mäkelä's avatar
      0eab87ce
    • Marko Mäkelä's avatar
      MDEV-22169 Recovery fails after failing to insert into mlog_init · 1738c0f1
      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.
      1738c0f1
    • Daniel Black's avatar
      MDEV-22010: mtr, "mariadbd" exists in mysys error messages · d848fcad
      Daniel Black authored
      Also executable can change for jemalloc.
      d848fcad
  5. 06 Apr, 2020 5 commits
  6. 05 Apr, 2020 8 commits
  7. 04 Apr, 2020 5 commits
    • Otto Kekäläinen's avatar
      4ac76936
    • Otto Kekäläinen's avatar
      Deb: Build depend on libcurl4-openssl-dev as primary option · b541defe
      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.
      b541defe
    • Otto Kekäläinen's avatar
      MDEV-20298 Make mariadb-client-10.5 perl dep backwards compatible · 6959c092
      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
      6959c092
    • Otto Kekäläinen's avatar
      Deb: Update control file Depends to include only variables that are set · 333e1d82
      Otto Kekäläinen authored
      Don't include variables that are empty and unused.
      333e1d82
    • Otto Kekäläinen's avatar
      MDEV-21303: Fix man page packaging for new mariadb-* named binaries · 2cedf3ec
      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.
      2cedf3ec