mariadb.git
19 months ago[PATCH] Fix a stack overflow in pinbox allocator
Hugo Wen [Sat, 11 Mar 2023 00:27:42 +0000 (00:27 +0000)]
[PATCH] Fix a stack overflow in pinbox allocator

MariaDB supports a "wait-free concurrent allocator based on pinning addresses".
In `lf_pinbox_real_free()` it tries to sort the pinned addresses for better
performance to use binary search during "real free". `alloca()` was used to
allocate stack memory and copy addresses.

To prevent a stack overflow when allocating the stack memory the function checks
if there's enough stack space. However, the available stack size was calculated
inaccurately which eventually caused database crash due to stack overflow.

The crash was seen on MariaDB 10.6.11 but the same code defect exists on all
MariaDB versions.

A similar issue happened previously and the fix in fc2c1e43 was to add a
`ALLOCA_SAFETY_MARGIN` which is 8192 bytes. However, that safety margin is not
enough during high connection workloads.

MySQL also had a similar issue and the fix
https://github.com/mysql/mysql-server/commit/b086fda was to remove the use of
`alloca` and replace qsort approach by a linear scan through all pointers (pins)
owned by each thread.

This commit is mostly the same as it is the only way to solve this issue as:
1. Frame sizes in different architecture can be different.
2. Number of active (non-null) pinned addresses varies, so the frame
   size for the recursive sorting function `msort_with_tmp` is also hard
   to predict.
3. Allocating big memory blocks in stack doesn't seem to be a very good
   practice.

For further details see the mentioned commit in MySQL and the inline comments.

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.

Gbp-Pq: Name 2541-fix-stack-overflow-in-pinbox-allocator.patch

19 months ago[PATCH] cmake: add support for reproducible buildS . We should use relative path...
Sutou Kouhei [Sat, 5 Feb 2022 02:05:39 +0000 (11:05 +0900)]
[PATCH] cmake: add support for reproducible buildS . We should use relative path not absolute path. We can use target without breaking reproducibility.

Gbp-Pq: Name mroonga-mrn-lib-dirs-path-reproducible-build.patch

19 months agofix-reproducible-builds-rocksdb
Debian MySQL Maintainers [Fri, 17 May 2024 05:02:04 +0000 (22:02 -0700)]
fix-reproducible-builds-rocksdb

Origin: https://github.com/facebook/rocksdb/commit/0a9a05ae12943b1529ef1eabbca5ce5a71c986bf

# Merged in RocksDB 6.19.3, but not updated into MariaDB yet
Bug: https://github.com/facebook/rocksdb/issues/7035
Author: Otto Kekäläinen <otto@kekalainen.net>
Subject: Make RocksDB build reproducible

The RocksDB binary included a string with the build timestamp:
> rocksdb_build_git_date:@2021-05-23·16:04:38@

As this changes from build to build, it makes the builds unreproducible.
Simply removing it solves the issue.

This temporary fix can be removed when a proper fix already done in upstream
lands in MariaDB when the RocksDB submodule is updated to a newer release.

Gbp-Pq: Name fix-reproducible-builds-rocksdb.patch

19 months agofix-spelling-rocksdb
Debian MySQL Maintainers [Fri, 17 May 2024 05:02:04 +0000 (22:02 -0700)]
fix-spelling-rocksdb

Forwarded: https://github.com/facebook/rocksdb/pull/9653
Origin: https://patch-diff.githubusercontent.com/raw/facebook/rocksdb/pull/9653.patch

# Merged in RocksDB 7.3.1, but not updated into MariaDB yet
From: Otto Kekäläinen <otto@debian.org>
Date: Wed, 2 Mar 2022 18:13:18 -0800
Subject: Fix various spelling errors still found in code
  Two upstream PRs remain that have been merged, but not imported on MariaDB yet.

Gbp-Pq: Name fix-spelling-rocksdb.patch

19 months agoFix perl path in scripts Fix Lintian issue https://lintian.debian.org/tags/incorrect...
Otto Kekäläinen [Sun, 20 Dec 2020 18:58:42 +0000 (20:58 +0200)]
Fix perl path in scripts Fix Lintian issue https://lintian.debian.org/tags/incorrect-path-for-interpreter.html . Upstream will never accept this patch, see https://github.com/MariaDB/server/pull/1718

Gbp-Pq: Name env-perl-usr-bin-perl.patch

19 months agorocksdb-kfreebsd
Debian MySQL Maintainers [Fri, 17 May 2024 05:02:04 +0000 (22:02 -0700)]
rocksdb-kfreebsd

Forwarded: https://github.com/facebook/rocksdb/pull/6992

# Merged in RocksDB 6.12.6 but not updated into MariaDB yet
From: Andrew Kryczka <andrewkr@fb.com>
Date: Tue, 16 Jun 2020 19:34:21 -0700
# Merged in RocksDB 6.13.fb, but not updated into MariaDB yet
Bug: https://jira.mariadb.org/browse/MDEV-19251
Description:
 Upstream has merged this but we still need to wait for it to be included
 in a RocksDB release and imported into MariaDB and then into Debian.

Gbp-Pq: Name rocksdb-kfreebsd.patch

19 months agoChange the default optimization from -O3 to -O2 in mysql_release.cmake BUILD_CONFIG...
Ondrej Sury [Wed, 22 Nov 2017 20:32:51 +0000 (20:32 +0000)]
Change the default optimization from -O3 to -O2 in mysql_release.cmake BUILD_CONFIG profile

Forwarded: no
Bug: https://jira.mariadb.org/browse/MDEV-19734?focusedCommentId=156606&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-156606

Gbp-Pq: Name 0025-Change-the-default-optimization-from-O3-to-O2-in-mys.patch

19 months agomariadb (1:10.11.8-1) unstable; urgency=medium
Otto Kekäläinen [Fri, 17 May 2024 05:02:04 +0000 (22:02 -0700)]
mariadb (1:10.11.8-1) unstable; urgency=medium

  [ Otto Kekäläinen ]
  * New upstream version 10.11.8. Includes fixes for several severe regressions
    as noted at https://mariadb.com/kb/en/mariadb-10-11-8-release-notes/ as well
    as security issues:
    - CVE-2024-21096
  * Add CMake flag to ignore libfmt exit code so cross-building works
  * Extend skip test list for latest failures in reproducible builds on armhf
  * Disable tests that fail on armhf when full test suite is run
  * Remove temporary exceptions for bugs that should by now be fixed
  * MDEV-31530 Localizations for Swahili language
  * Update Innotop to be compatible with MariaDB 11.x series
  * Replace use of trailing line `| \` with just `|` in Bash scripts
  * Remove libmariadb file no longer present in MariaDB Connector C v3.3
  * Replace autopkgtest smoke test dependency hack with arch list
  * Update client program 'mariadb' trace to match new libmariadb v3.3
    - New parameter 'sandbox' to fix a vulnerability and new mariadb-dump
      output that always has the sandbox header and is backwards incompatible
  * Update server trace to include new parameters innodb-log-spin-wait-delay
    and innodb-snapshot-isolation
  [ Michael Biebl ]
  * Ensure debconf database is purged after it has been used in postrm

  [ Svante Signell ]
  * Make hurd-i386 build fully pass (Closes: #1069094)

[dgit import unpatched mariadb 1:10.11.8-1]

19 months agoImport mariadb_10.11.8.orig.tar.gz
Otto Kekäläinen [Fri, 17 May 2024 05:02:04 +0000 (22:02 -0700)]
Import mariadb_10.11.8.orig.tar.gz

[dgit import orig mariadb_10.11.8.orig.tar.gz]

19 months agoImport mariadb_10.11.8-1.debian.tar.xz
Otto Kekäläinen [Fri, 17 May 2024 05:02:04 +0000 (22:02 -0700)]
Import mariadb_10.11.8-1.debian.tar.xz

[dgit import tarball mariadb 1:10.11.8-1 mariadb_10.11.8-1.debian.tar.xz]