1. 02 Oct, 2024 3 commits
  2. 01 Oct, 2024 8 commits
  3. 30 Sep, 2024 7 commits
  4. 29 Sep, 2024 1 commit
  5. 27 Sep, 2024 3 commits
  6. 26 Sep, 2024 1 commit
    • Tony Chen's avatar
      ssl_cipher parameter cannot configure TLSv1.3 and TLSv1.2 ciphers at the same time · be164fc4
      Tony Chen authored
      SSL_CTX_set_ciphersuites() sets the TLSv1.3 cipher suites.
      
      SSL_CTX_set_cipher_list() sets the ciphers for TLSv1.2 and below.
      
      The current TLS configuration logic will not perform SSL_CTX_set_cipher_list()
      to configure TLSv1.2 ciphers if the call to SSL_CTX_set_ciphersuites() was
      successful. The call to SSL_CTX_set_ciphersuites() is successful if any TLSv1.3
      cipher suite is passed into `--ssl-cipher`.
      
      This is a potential security vulnerability because users trying to restrict
      specific secure ciphers for TLSv1.3 and TLSv1.2, would unknowingly still have
      the database support insecure TLSv1.2 ciphers.
      
      For example:
      If setting `--ssl_cipher=TLS_AES_128_GCM_SHA256:ECDHE-RSA-AES128-GCM-SHA256`,
      the database would still support all possible TLSv1.2 ciphers rather than only
      ECDHE-RSA-AES128-GCM-SHA256.
      
      The solution is to execute both SSL_CTX_set_ciphersuites() and
      SSL_CTX_set_cipher_list() even if the first call succeeds.
      
      This allows the configuration of exactly which TLSv1.3 and TLSv1.2 ciphers to
      support.
      
      Note that there is 1 behavior change with this. When specifying only TLSv1.3
      ciphers to `--ssl-cipher`, the database will not support any TLSv1.2 cipher.
      However, this does not impose a security risk and considering TLSv1.3 is the
      modern protocol, this behavior should be fine.
      
      All TLSv1.3 ciphers are still supported if only TLSv1.2 ciphers are specified
      through `--ssl-cipher`.
      
      All new code of the whole pull request, including one or several files that are
      either new files or modified ones, are contributed under the BSD-new license. I
      am contributing on behalf of my employer Amazon Web Services, Inc.
      be164fc4
  7. 25 Sep, 2024 8 commits
  8. 24 Sep, 2024 3 commits
    • Max Kellermann's avatar
      MDEV-34994: sql/mysqld: stop accept() loop after the first EAGAIN · 53f5ee79
      Max Kellermann authored
      Each time a listener socket becomes ready, MariaDB calls accept() ten
      times (MAX_ACCEPT_RETRY), even if all but the first one return EAGAIN
      because there are no more connections.  This causes unnecessary CPU
      usage - on our server, the CPU load of that thread, which does nothing
      but accept(), saturates one CPU core by ~45%.  The loop should stop
      after the first EAGAIN.
      
      Perf report:
      
          11.01%  mariadbd  libc.so.6          [.] accept4
           6.42%  mariadbd  [kernel.kallsyms]  [k] finish_task_switch.isra.0
           5.50%  mariadbd  [kernel.kallsyms]  [k] _raw_spin_unlock_irqrestore
           5.50%  mariadbd  [kernel.kallsyms]  [k] syscall_enter_from_user_mode
           4.59%  mariadbd  [kernel.kallsyms]  [k] __fget_light
           3.67%  mariadbd  [kernel.kallsyms]  [k] kmem_cache_alloc
           2.75%  mariadbd  [kernel.kallsyms]  [k] fput
           2.75%  mariadbd  [kernel.kallsyms]  [k] mod_objcg_state
           1.83%  mariadbd  [kernel.kallsyms]  [k] __inode_wait_for_writeback
           1.83%  mariadbd  [kernel.kallsyms]  [k] __sys_accept4
           1.83%  mariadbd  [kernel.kallsyms]  [k] _raw_spin_unlock_irq
           1.83%  mariadbd  [kernel.kallsyms]  [k] alloc_inode
           1.83%  mariadbd  [kernel.kallsyms]  [k] call_rcu
      53f5ee79
    • Sergei Golubchik's avatar
      reformat galera sst error messages · 8fd1b060
      Sergei Golubchik authored
      put the command line at the end. so that when a very long command line
      is truncated, it doesn't take the actual error message with it
      8fd1b060
    • Sergei Golubchik's avatar
      galera_3nodes.MDEV-29171 fails · dd1cad7e
      Sergei Golubchik authored
      set transferfmt in .cnf file like other galera tests do.
      otherwise it defaults to socat when mtr detected that only nc is available
      dd1cad7e
  9. 23 Sep, 2024 3 commits
  10. 20 Sep, 2024 3 commits