1. 15 Jul, 2020 1 commit
    • Alexander Barkov's avatar
      Preparatory changes for MDEV-23162 Improve Protocol performance for numeric data · be98036f
      Alexander Barkov authored
      - Renaming this virtual method store() to store_str():
          store(const char *str, size_t length, CHARSET_INFO *src_cs, CHARSET_INFO *dst_cs)
        We'll be adding more variants of store*() soon. This change will help to avoid
        ambiguities during overloading.
      
      - Adding a helper method store_ident().
      
      - Renaming store_str(const LEX_CSTRING &s...) to store_lex_cstring(),
        to avoid ambiguties during overloading.
      
      - Adding a helper method store() for backward compatibility, to avoid a lot of
        changes in the code now. But eventually we should replace store() to
        non-ambiguius methods store_str() or store_ident().
      
      - Adding a helper method Protocol::needs_conversion() and reusing it
        in two places.
      be98036f
  2. 14 Jul, 2020 1 commit
  3. 13 Jul, 2020 7 commits
  4. 11 Jul, 2020 2 commits
  5. 10 Jul, 2020 2 commits
    • Otto Kekäläinen's avatar
      Deb: Misc ColumnStore Debian packaging improvements · 43937792
      Otto Kekäläinen authored
      - Add 'libboost-all-dev' and 'libreadline-gplv2-dev' as they were was found
        to be a compulsory build dependency for columnstore plugin.
      - Add 'expect' as run-time dependencey for columnstore plugin as scripts
        use it:
          usr/bin/mcs_module_installer.sh: #!/usr/bin/expect
          usr/bin/remote_command.sh: #!/usr/bin/expect
          usr/bin/remote_command_verify.sh: #!/usr/bin/expect
          usr/bin/remote_scp_get.sh: #!/usr/bin/expect
          usr/bin/remote_scp_put.sh: #!/usr/bin/expect
          usr/bin/rsync.sh: #!/usr/bin/expect
      - Properly define depends on Python. No Python 2 support needs to be
        considered, Python 3 has been around long enough. Fixes Lintian errors
          E: mariadb-plugin-columnstore: python-script-but-no-python-dep
          usr/bin/mcs-loadbrm.py #!python
          E: mariadb-plugin-columnstore: python-script-but-no-python-dep
          usr/bin/mcs-start-storagemanager.py #!python
      - Partially revert undocumented and thus unjustified changes in commits
        d69a79da63287089efdc5f90a11ecd66ce55b471 and
        c0565666cfe6528b76bc53ce50d3690d13c92cf6.
      - Trigger ldconfig, otherwise Lintian complains:
          E: mariadb-plugin-columnstore: package-must-activate-ldconfig-trigger
          usr/lib/x86_64-linux-gnu/libwriteengineredistribute.so
      - Update postinst to be compatible with new server binary mariadbd name.
      - Properly detect systemd or fallback to sysv init in postrm script.
      - Only attempt to build ColumnStore on amd64 and i386. Test builds on
        Launchpad.net showed the CMake plugin configure step will prevent even
        attempts to build on other platforms.
      - Clean up and unify cmake build command in debian/rules.
      - Explicitly list files not installed.
      - Run 'wrap-and-sort -a -v'.
      - Truncate build logs on Salsa-CI to keep under 4 MB. This is now needed
        as the ColumnStore build is so verbose.
        See https://jira.mariadb.org/browse/MCOL-4111.
      - Update Travis-CI dependencies to match new debian/control.
      43937792
    • Alexey Botchkov's avatar
      MDEV-21385 PAM v2 plugin produces lots of zombie processes. · 873eb4a3
      Alexey Botchkov authored
      The auth_pam_tool that is executed from pam_auth() can be still
      not finished by the time we do the waitpid() there.
      As we use WNOHANG option for the waitpid(), it didn't wait and
      left the zombie process. So let's do the loop of waitpid() with the
      limited number of sleeps.
      873eb4a3
  6. 09 Jul, 2020 1 commit
    • Eugene Kosov's avatar
      fix compilation with gcc-10 · 24ed08c3
      Eugene Kosov authored
      ../sql/sql_class.cc: In constructor ‘start_new_trans::start_new_trans(THD*)’:
      ../include/m_string.h:61:49: error: ‘void* memset(void*, int, size_t)’ clearing an object of non-trivial type ‘struct Ha_data’; use assignment or value-initialization instead [-Werror=class-memaccess]
         61 | # define bzero(A,B)             memset((A),0,(B))
            |                                                 ^
      ../sql/sql_class.cc:5805:3: note: in expansion of macro ‘bzero’
       5805 |   bzero(thd->ha_data, sizeof(thd->ha_data));
            |   ^~~~~
      In file included from ../sql/sql_class.cc:33:
      ../sql/sql_class.h:2003:8: note: ‘struct Ha_data’ declared here
       2003 | struct Ha_data
            |        ^~~~~~~
      24ed08c3
  7. 08 Jul, 2020 4 commits
  8. 07 Jul, 2020 1 commit
  9. 06 Jul, 2020 2 commits
  10. 05 Jul, 2020 2 commits
    • Marko Mäkelä's avatar
      Fix cmake -DWITH_MSAN=ON · 79c166c5
      Marko Mäkelä authored
      commit ab406990 accidentally
      misplaced #endif directives.
      79c166c5
    • Marko Mäkelä's avatar
      After-merge fix for ASAN and MSAN · ab406990
      Marko Mäkelä authored
      The merge commit 0fd89a1a
      of commit b6ec1e8b
      seems to cause occasional MemorySanitizer failures,
      because it failed to replace some MEM_UNDEFINED() calls
      with MEM_MAKE_ADDRESSABLE().
      
      my_large_free(): Correctly invoke MEM_MAKE_ADDRESSABLE() after
      freeing memory. Failure to do so could cause bogus
      AddressSanitizer failures for memory allocated by my_large_malloc().
      On MemorySanitizer, we will do nothing.
      
      buf_pool_t::chunk_t::create(): Replace the MEM_MAKE_ADDRESSABLE()
      that had been added in commit 48493132
      to work around the issue.
      ab406990
  11. 04 Jul, 2020 5 commits
    • Marko Mäkelä's avatar
      Merge 10.4 into 10.5 · 90d5d906
      Marko Mäkelä authored
      90d5d906
    • Marko Mäkelä's avatar
      Merge 10.3 into 10.4 · b99fa1e7
      Marko Mäkelä authored
      b99fa1e7
    • Marko Mäkelä's avatar
      Fixup the parent commit for MSAN and Valgrind · 453dc4b3
      Marko Mäkelä authored
      commit 48493132 was a necessary
      fix for the buffer pool resizing tests in 10.5 in
      AddressSanitizer. However, that change would break the tests
      innodb.innodb_buffer_pool_resize and
      innodb.innodb_buffer_pool_resize_with_chunks
      when run in MemorySanitizer, or presumably in Valgrind as well.
      (Those tests run "forever" in Valgrind.)
      
      buf_pool_resize(): Cancel the effect of MEM_NOACCESS() in Valgrind
      and ASAN. In MSAN, MEM_NOACCESS() is a no-op, and hence we must do
      nothing special here.
      
      MEM_MAKE_ADDRESSABLE() would declare the memory contents undefined.
      In this particular case, we must actually declare the contents
      defined for Valgrind.
      453dc4b3
    • Marko Mäkelä's avatar
      MDEV-22535 fixup: Define a single-caller function inline · a85f81af
      Marko Mäkelä authored
      Let us avoid any overhead in release builds, for an empty function.
      a85f81af
    • Marko Mäkelä's avatar
      After-merge fixes for ASAN · 2d00e003
      Marko Mäkelä authored
      The merge commit 0fd89a1a
      of commit b6ec1e8b
      was slightly incomplete.
      
      ReadView::mem_valid(): Use the correct primitive
      MEM_MAKE_ADDRESSABLE(), because MEM_UNDEFINED() now has
      no effect on ASAN.
      
      recv_sys_t::alloc(), recv_sys_t::add(): Use MEM_MAKE_ADDRESSABLE()
      instead of MEM_UNDEFINED(), to get the correct behaviour for ASAN.
      For Valgrind and MSAN, there is no change in behaviour.
      
      recv_sys_t::free(), recv_sys_t::clear(): Before freeing memory to
      buf_pool.free_list, invoke MEM_MAKE_ADDRESSABLE() on the entire
      buf_block_t::frame, to cancel the effect of MEM_NOACCESS() in
      recv_sys_t::alloc().
      2d00e003
  12. 03 Jul, 2020 12 commits