1. 29 Apr, 2020 3 commits
    • Alexey Botchkov's avatar
      MDEV-22337 Assertion `Alloced_length >= (str_length + length + net_le…... · d4da131c
      Alexey Botchkov authored
      MDEV-22337 Assertion `Alloced_length >= (str_length + length + net_le… …ngth_size(length))' failed in Binary_string::q_net_store_data on long MULTIPOLYGON query with session_track_user_variables=1 (optimized builds).
      
      We have to reserve enough space in String to use q_something().
      Also pointer calculations fixed.
      d4da131c
    • Alexey Botchkov's avatar
      MDEV-21915 Server crashes in copy_fields,Item_func_group_concat::add … · ffc5e00e
      Alexey Botchkov authored
      …while using json_arrayagg() as a window function.
      
      We don't support JSON_ARRAYAGG and JSON_OBJECTAGG in window functions
      yet.
      ffc5e00e
    • Sujatha's avatar
      MDEV-22317: SIGSEGV in my_free/delete_dynamic in optimized builds (ARIA) · 2e6b21be
      Sujatha authored
      Problem:
      =======
      SET @@GLOBAL.replicate_wild_ignore_table='';
      SET @@GLOBAL.replicate_wild_do_table='';
      
      Reports following valgrind error.
      
      Conditional jump or move depends on uninitialised value(s)
      Rpl_filter::set_wild_ignore_table(char const*) (rpl_filter.cc:439)
      
      Conditional jump or move depends on uninitialised value(s)
      at 0xF60390: delete_dynamic (array.c:304)
      by 0x74F3F2: Rpl_filter::set_wild_do_table(char const*) (rpl_filter.cc:421)
      
      Analysis:
      ========
      List of values provided for options "wild_do_table" and "wild_ignore_table" are
      stored in DYNAMIC_ARRAYS.  When an empty list is provided these dynamic arrays
      are not initialized.  Existing code treats empty element list as an error and
      tries to clean the uninitialized list. This results in above valgrind issue.
      
      Fix:
      ===
      The clean up should be initiated only when there is an error while parsing the
      'wild_do_table' or 'wild_ignore_table' list and the dynamic_array is in
      initialized state. Otherwise for empty list it should simply return success.
      2e6b21be
  2. 28 Apr, 2020 4 commits
  3. 27 Apr, 2020 3 commits
  4. 25 Apr, 2020 2 commits
  5. 24 Apr, 2020 6 commits
    • Marko Mäkelä's avatar
      MDEV-14735: Fix -Wunused-const-variable · a1978252
      Marko Mäkelä authored
      a1978252
    • Marko Mäkelä's avatar
      Fixup d1c3342d for --embedded · be42004d
      Marko Mäkelä authored
      be42004d
    • Marko Mäkelä's avatar
      MDEV-7962 wsrep_on() takes 0.14% in OLTP RO · edd38b50
      Marko Mäkelä authored
      The reason why we have wsrep_on() at all is that the macro WSREP(thd)
      depends on the definition of THD, and that is intentionally an opaque
      data type for InnoDB. So, we cannot avoid invoking wsrep_on(), but
      we can evaluate the less expensive conditions thd && WSREP_ON before
      calling the function.
      
      Global_read_lock: Use WSREP_NNULL(thd) instead of wsrep_on(thd)
      because we not only know the definition of THD but also that
      the pointer is not null.
      
      wsrep_open(): Use WSREP(thd) instead of wsrep_on(thd).
      
      InnoDB: Replace thd && wsrep_on(thd) with wsrep_on(thd), now that
      the condition has been merged to the definition of the macro
      wsrep_on().
      edd38b50
    • Marko Mäkelä's avatar
      MDEV-22203: WSREP_ON is unnecessarily expensive WITH_WSREP=OFF · 2c39f69d
      Marko Mäkelä authored
      If the server is compiled WITH_WSREP=OFF, we should avoid evaluating
      conditions on a global variable that is constant.
      
      WSREP_ON_: Renamed from WSREP_ON. Defined only WITH_WSREP=ON.
      
      WSREP_ON: Defined as unlikely(WSREP_ON_).
      
      wsrep_on(): Defined as WSREP_ON && wsrep_service->wsrep_on_func().
      
      The reason why we have wsrep_on() at all is that the macro WSREP(thd)
      depends on the definition of THD, and that is intentionally an opaque
      data type for InnoDB. So, we cannot avoid invoking wsrep_on(), but
      we can evaluate the less expensive condition WSREP_ON before calling
      the function.
      2c39f69d
    • Jan Lindström's avatar
      MDEV-22203: WSREP_ON is unnecessarily expensive to evaluate · 93475aff
      Jan Lindström authored
      Replaced WSREP_ON macro by single global variable WSREP_ON
      that is then updated at server statup and on wsrep_on and
      wsrep_provider update functions.
      93475aff
    • Eugene Kosov's avatar
      fix buggy gcc warning on ARM · 2b2dcf34
      Eugene Kosov authored
      https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89357
      
      In short, alignas of big alignments doesn't work for gcc on ARM.
      The bug is fixed in gcc-9.3 and won't be fixed in older branches.
      F.ex gcc-7 is not supported already.
      2b2dcf34
  6. 23 Apr, 2020 14 commits
    • Vladislav Vaintroub's avatar
      MDEV-20372 - fix thread_pool_info · a4bccefb
      Vladislav Vaintroub authored
      In rare cases, both listener and worker can do poll at the same time
      (one of them will return events, another one no events)
      
      Fix test query to account for it.
      a4bccefb
    • Monty's avatar
      Fixed memory leak if Aria didn't start · 9398c3df
      Monty authored
      This is not crtitical as if Aria doesn't start, the server will exit at once.
      9398c3df
    • Monty's avatar
      Fixed default_storage_engine.test · d1c3342d
      Monty authored
      The bug was that the script tried to start mysqld while there was already
      a running mysqld server. Fixed by killing the running one.
      d1c3342d
    • Otto Kekäläinen's avatar
      Deb: Use mysql[d].service symlinks as created by CMake · 2655984e
      Otto Kekäläinen authored
      Stop making new symlinks and use the existing ones directly as they have
      been available since d2f5e82f.
      2655984e
    • Otto Kekäläinen's avatar
      Remove excess mysql-* provides (the virtual-mysql-* are enough) · 77bf7a91
      Otto Kekäläinen authored
      Originally added in cc08c134 in 2015
      for backwards compatibility with old packages.
      
      It no longer makes much sense in providing mysql-* packages since the
      virtual-mysql-* packages paradign has been in effect since 2016 and
      all current MySQL installs should already follow the virtual-mysql-*
      paradigm controlled by https://tracker.debian.org/pkg/mysql-defaults.
      77bf7a91
    • Otto Kekäläinen's avatar
      Deb: Misc small fixes and cleanups · 7cbde2d0
      Otto Kekäläinen authored
      - Include binary wsrep_sst_rsync_wan previously omitted.
      - Don't build the embedded server. This saves a lot of time and
        around 500 MB of disk space.
      - Clean away unused override_dh_installcron. The package does not
        have any *.cron files, so this section is not needed.
      - Make mariadb-server run time depend on procps so pgrep works.
        The command pgrep is used in the maintainer scripts of mariadb-server,
        thus we should ensure it is found on the system.
      - Include build plugin func_test.so in test package. Don't include yet
        type_test.so since it fails (MDEV-22243).
      - Clean away obsolete Lintian overrides.
      7cbde2d0
    • Otto Kekäläinen's avatar
      Deb: Rename mysqlreport to mariadb-report, fix regression in 9e1b3af4 · 13ec2ecc
      Otto Kekäläinen authored
      This was partially already done in 9e1b3af4
      as the symlink mysqlreport pointed to mariadb-report. There just was no
      script with that name, so this rename complements it and now both
      mariadb-report and mysqlreport work again.
      13ec2ecc
    • Otto Kekäläinen's avatar
    • Otto Kekäläinen's avatar
      Deb: Remove unmaintained AWS key plugin packaging · b8092a3c
      Otto Kekäläinen authored
      Likewise to TokuDB and Cassandra, if this plugin is maintained it should
      be either fully enabled or not present at all. Packaging can be recovered
      from MariaDB 10.2 if needed, or if build outside of this packaging, then
      also the packaging scripts and snippets should be injected from the
      outside.
      b8092a3c
    • Otto Kekäläinen's avatar
      MDEV-19110: Remove Cassandra from Debian packaging · da64ec1e
      Otto Kekäläinen authored
      Cassandra has deprecated their Thrift interface years ago (a few months
      after Cassandra SE was released). The new way to access Cassandra is to
      use the CQL Connector, which does not use Thrift.
      
      There have been talks to make a CassandraSE V2 but no usable code have
      been produced. The motivation to keep CassandraSE in the MariaDB source
      code is to have it as an example for such future attempts.
      
      It can stay in the source code but it should be removed from packaging
      to avoid Debian packaging maintenance work around trying to compile it
      and have tests pass on new platform.
      
      If somebody wants Cassandra, they can use the 10.4 branch.
      da64ec1e
    • Otto Kekäläinen's avatar
      MDEV-21944: Remove TokuDB from Debian packaging · 9cc1c74c
      Otto Kekäläinen authored
      It was already disabled in 1589cf1c but
      turns out that as long as the packaging is there, is requires maintenance,
      ensuring it still builds, debugging failing tests etc and that takes its
      toll and is not worth all the extra work. Having it "only disabled" does
      not help, since either we have it and keep it tested and working, or we
      don't have it and don't spend time on keeping it working and tested.
      
      In MDEV-19780 there was already a decision to drop TokuDB from MariaDB.
      
      If somebody wants TokuDB, they can use the 10.4 branch.
      9cc1c74c
    • Otto Kekäläinen's avatar
    • Otto Kekäläinen's avatar
      Deb: Add a customized salsa-ci.yml for easy extra testing · 03119c58
      Otto Kekäläinen authored
      As initially most tests fail, they have allow_failures defined so that
      testing anyway proceeds all the way to the final 'upgrade extras' stage.
      
      All of these tests work for downstream Debian packaging of MariaDB 10.4
      and should eventually pass on upstream MariaDB 10.5 as well.
      
      Also upstream the Debian autopkgtests from MariaDB 10.4 in Debian so that
      pipeline includes running mtr.
      03119c58
    • Otto Kekäläinen's avatar
      Temporarily disable tests permanently failing on 10.5 · 6f0b621c
      Otto Kekäläinen authored
      This are filed as issues so I trust these will not be forgotten:
      - MDEV-20372
      - MDEV-21965
      - MDEV-21968
      - MDEV-22119
      
      Having these tests fail the MTR permanently decreases the overall quality
      of the software as:
      - developers start neglecting the results from CI systems and do not spot
        the new regressions their changes introduce
      - reviews take many hours as a diligent reviewer needs to open all build
        logs that are failing, see what is failing, and check if those are new
        failures or not – alternatively reviewers stop looking at CI altogether
      
      It is better to disable these test now and prioritize the MDEVs for the
      test failure bugs than keep the MTR red and allow more test failures to
      creep in.
      6f0b621c
  7. 22 Apr, 2020 8 commits