1. 23 Nov, 2022 1 commit
    • lrf141's avatar
      MDEV-19190 Assertion `...auto_inc_initialized` failed in get_auto_increment · da03d8d9
      lrf141 authored
      This is a DELETE only case. Normally this statement doesn't make inserts,
      but DELETE ... FOR PORTION changes it. UPDATE and INSERT initializes
      autoinc by calling handler::info(HA_STATUS_AUTO). Also myisam and innodb
      can lazily initialize it in their update_create_info overrides.
      
      The solution is to initialize autoinc during delete preparation,
      if period (DELETE FOR PORTION) is specified.
      
      The initial work has been done by Kento Takeuchi by his PR #2048,
      however this commit also holds a few technical modifications by
      Nikita Malyavin
      da03d8d9
  2. 22 Nov, 2022 2 commits
    • Julius Goryavsky's avatar
      MDEV-29817: Issues with handling options for SSL CRLs (and some others) · 1ebf0b73
      Julius Goryavsky authored
      This patch adds the correct setting of the "--tls-version" and
      "--ssl-verify-server-cert" options in the client-side utilities
      such as mysqltest, mysqlcheck and mysqlslap, as well as the correct
      setting of the "--ssl-crl" option when executing queries on the
      slave side, and also the correct option codes in the "sslopts-logopts.h"
      file (in the latter case, incorrect values are not a problem right
      now, but may cause subtle test failures in the future, if the option
      handling code changes).
      1ebf0b73
    • Alexander Barkov's avatar
      MDEV-27670 Assertion `(cs->state & 0x20000) == 0' failed in my_strnncollsp_nchars_generic_8bit · 931549ff
      Alexander Barkov authored
      Also fixes:
      
      MDEV-27768 MDEV-25440: Assertion `(cs->state & 0x20000) == 0' failed in my_strnncollsp_nchars_generic_8bit
      
      The "strnncollsp_nchars" virtual function pointer for tis620_thai_nopad_ci
      was incorrectly initialized to a generic function
      my_strnncollsp_nchars_generic_8bit(), which crashed on assert.
      
      Implementing a tis620 specific function version.
      931549ff
  3. 21 Nov, 2022 1 commit
  4. 20 Nov, 2022 1 commit
  5. 09 Nov, 2022 2 commits
    • Marko Mäkelä's avatar
      Merge 10.3 into 10.4 · 20969aa4
      Marko Mäkelä authored
      20969aa4
    • Marko Mäkelä's avatar
      MDEV-29883 Deadlock between InnoDB statistics update and BLOB insert · 6b91792a
      Marko Mäkelä authored
      This is a backport of commit 8b6a308e
      from MariaDB Server 10.6.11. No attempt to reproduce the hang
      in earlier an earlier version of MariaDB Server than 10.6 was made.
      
      In each caller of fseg_n_reserved_pages() except ibuf_init_at_db_start()
      which is a special case for ibuf.index at database startup, we must hold
      an index latch that prevents concurrent allocation or freeing of index
      pages.
      
      Any operation that allocates or free pages that belong to an index tree
      must first acquire an index latch in non-shared mode, and while
      holding that, acquire an index root page latch in non-shared mode.
      
      btr_get_size(), btr_get_size_and_reserved(): Assert that a strong enough
      index latch is being held.
      
      dict_stats_update_transient_for_index(),
      dict_stats_analyze_index(): Acquire a strong enough index latch.
      
      These operations had followed the same order of acquiring latches in
      every InnoDB version since the very beginning
      (commit c533308a).
      
      The hang was introduced in
      commit 2e814d47 which imported
      mysql/mysql-server@ac74632293bea967b352d1b472abedeeaa921b98
      which failed to strengthen the locking requirements of the function
      btr_get_size().
      6b91792a
  6. 08 Nov, 2022 13 commits
  7. 07 Nov, 2022 6 commits
  8. 05 Nov, 2022 1 commit
    • Vladislav Vaintroub's avatar
      MDEV-29951 server hang in crash handler · 92be8d20
      Vladislav Vaintroub authored
      When trying to output stacktrace, and addr2line is not installed, the
      child process forked by start_addr2line_fork() will fail to do exec(),
      and finish with exit(1).
      
      There is a problem with exit() though - it runs exit handlers,
      and for the forked copy of crashing process, it is a bad idea.
      
      In 10.5+ code for example, exit handlers include
      tpool::task_group static destructors, and it will hang infinitely
      waiting for completion of the outstanding tasks.
      
      The fix is to use _exit() instead, which skips the execution of exit
      handlers
      92be8d20
  9. 03 Nov, 2022 1 commit
  10. 02 Nov, 2022 2 commits
  11. 01 Nov, 2022 1 commit
    • Sergei Golubchik's avatar
      MDEV-29924 Assertion `(((nr) % (1LL << 24)) % (int) log_10_int[6 - dec]) == 0'... · 1a3859ff
      Sergei Golubchik authored
      MDEV-29924 Assertion `(((nr) % (1LL << 24)) % (int) log_10_int[6 - dec]) == 0' failed in my_time_packed_to_binary on SELECT when using TIME field
      
      when assigning the cached item to the Item_cache for the first time
      make sure to use Item_cache::setup(), not Item_cache::store().
      Because the former copies the metadata (and allocates memory, in case
      of Item_cache_row), and Item_cache::decimal must be set for
      comparisons to work correctly.
      1a3859ff
  12. 31 Oct, 2022 1 commit
    • Oleg Smirnov's avatar
      MDEV-29624 MDEV-29655 Fix ASAN errors on pushdown of derived table · 0d927a57
      Oleg Smirnov authored
      Deallocation of TABLE_LIST::dt_handler and TABLE_LIST::pushdown_derived
      was performed in multiple places if code. This not only made the code
      more difficult to maintain but also led to memory leaks and
      ASAN heap-use-after-free errors.
      This commit puts deallocation of TABLE_LIST::dt_handler and
      TABLE_LIST::pushdown_derived to the single point - JOIN::cleanup()
      0d927a57
  13. 30 Oct, 2022 1 commit
    • Brad Smith's avatar
      Fix warning with signal typedef for *BSD · 7d96cb47
      Brad Smith authored
      /usr/ports/pobj/mariadb-10.9.3/mariadb-10.9.3/mysys/my_lock.c:183:7: warning: incompatible function pointer types assigning to 'sig_return' (aka 'void (*)(void)') from 'void (*)(int)' [-Wincompatible-function-pointer-types]
            ALARM_INIT;
            ^~~~~~~~~~
      /usr/ports/pobj/mariadb-10.9.3/mariadb-10.9.3/include/my_alarm.h:43:16: note: expanded from macro 'ALARM_INIT'
                              alarm_signal=signal(SIGALRM,my_set_alarm_variable);
                                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      /usr/ports/pobj/mariadb-10.9.3/mariadb-10.9.3/mysys/my_lock.c:189:7: warning: incompatible function pointer types passing 'sig_return' (aka 'void (*)(void)') to parameter of type 'void (*)(int)' [-Wincompatible-function-pointer-types]
            ALARM_END;
            ^~~~~~~~~
      /usr/ports/pobj/mariadb-10.9.3/mariadb-10.9.3/include/my_alarm.h:44:41: note: expanded from macro 'ALARM_END'
                                                    ^~~~~~~~~~~~
      /usr/include/sys/signal.h:199:27: note: passing argument to parameter here
      void    (*signal(int, void (*)(int)))(int);
                                   ^
      2 warnings generated.
      
      The prototype is the same for all of the *BSD's.
      
      void
      (*signal(int sigcatch, void (*func)(int sigraised)))(int);
      7d96cb47
  14. 28 Oct, 2022 1 commit
  15. 27 Oct, 2022 2 commits
  16. 26 Oct, 2022 4 commits