diff mbox series

[meta-oe,v2] mariadb: skip failing test on musl

Message ID 20251119183451.935920-1-skandigraun@gmail.com
State Under Review
Headers show
Series [meta-oe,v2] mariadb: skip failing test on musl | expand

Commit Message

Gyorgy Sarvari Nov. 19, 2025, 6:34 p.m. UTC
There is a timezone related ptest that fails using musl-libc.
This has been reported to the mariadb developers[1], who came up with
the backported patch that's the subject of this change.

This patch skips the timezone related tests with musl, in case the
testcase uses a timezone that behaves differently with musl than on
other platforms.

[1]: https://jira.mariadb.org/browse/MDEV-38029

Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
---
 .../include/ptest-packagelists-meta-oe.inc    |  4 +-
 meta-oe/recipes-dbs/mysql/mariadb.inc         |  1 +
 ...info-t-fails-for-certain-TZ-values-o.patch | 47 +++++++++++++++++++
 3 files changed, 50 insertions(+), 2 deletions(-)
 create mode 100644 meta-oe/recipes-dbs/mysql/mariadb/0001-MDEV-38029-my_tzinfo-t-fails-for-certain-TZ-values-o.patch
diff mbox series

Patch

diff --git a/meta-oe/conf/include/ptest-packagelists-meta-oe.inc b/meta-oe/conf/include/ptest-packagelists-meta-oe.inc
index 25db9fe5cc..ea336f1058 100644
--- a/meta-oe/conf/include/ptest-packagelists-meta-oe.inc
+++ b/meta-oe/conf/include/ptest-packagelists-meta-oe.inc
@@ -73,7 +73,7 @@  PTESTS_SLOW_META_OE = "\
 "
 PTESTS_SLOW_META_OE:append:x86 = " kernel-selftest"
 PTESTS_SLOW_META_OE:append:x86-64 = " kernel-selftest"
-PTESTS_SLOW_META_OE:remove:libc-musl = "kernel-selftest mariadb"
+PTESTS_SLOW_META_OE:remove:libc-musl = "kernel-selftest"
 
 PTESTS_PROBLEMS_META_OE = "\
     keyutils \
@@ -82,4 +82,4 @@  PTESTS_PROBLEMS_META_OE = "\
     psqlodbc \
     rsyslog \
 "
-PTESTS_PROBLEMS_META_OE:append:libc-musl = " jemalloc minicoredumper oprofile mariadb"
+PTESTS_PROBLEMS_META_OE:append:libc-musl = " jemalloc minicoredumper oprofile"
diff --git a/meta-oe/recipes-dbs/mysql/mariadb.inc b/meta-oe/recipes-dbs/mysql/mariadb.inc
index a757a10bfe..82479c248f 100644
--- a/meta-oe/recipes-dbs/mysql/mariadb.inc
+++ b/meta-oe/recipes-dbs/mysql/mariadb.inc
@@ -27,6 +27,7 @@  SRC_URI = "https://archive.mariadb.org/${BP}/source/${BP}.tar.gz \
            file://0001-Remove-x86-specific-loop-in-my_convert.patch \
            file://0001-support-reproducible-builds.patch \
            file://0001-storage-mroonga-CMakeLists.txt-fix-reproducible-buil.patch \
+           file://0001-MDEV-38029-my_tzinfo-t-fails-for-certain-TZ-values-o.patch \
           "
 SRC_URI[sha256sum] = "52fa4dca2c5f80afc1667d523a27c06176d98532298a6b0c31ed73505f49e15c"
 
diff --git a/meta-oe/recipes-dbs/mysql/mariadb/0001-MDEV-38029-my_tzinfo-t-fails-for-certain-TZ-values-o.patch b/meta-oe/recipes-dbs/mysql/mariadb/0001-MDEV-38029-my_tzinfo-t-fails-for-certain-TZ-values-o.patch
new file mode 100644
index 0000000000..f1e07e304a
--- /dev/null
+++ b/meta-oe/recipes-dbs/mysql/mariadb/0001-MDEV-38029-my_tzinfo-t-fails-for-certain-TZ-values-o.patch
@@ -0,0 +1,47 @@ 
+From 61bc216ff9e1d0a8a7fafce57ba916018cd6ac6d Mon Sep 17 00:00:00 2001
+From: Vladislav Vaintroub <vvaintroub@gmail.com>
+Date: Wed, 19 Nov 2025 13:01:56 +0100
+Subject: [PATCH] MDEV-38029 my_tzinfo-t fails for certain TZ values on musl
+
+From: Vladislav Vaintroub <vvaintroub@gmail.com>
+
+The test fails for TZ values such as `PST8PDT` (present but outdated in
+tzdb) and custom forms like `GST-1GDT`. On musl, these values do not
+trigger the expected DST transitions, leading to incorrect DST offsets
+or abbreviations.
+
+This appears to be a musl libc bug; the same TZ values behave correctly
+elsewhere, including Windows. We work around it by skipping the
+affected tests when musl is detected.
+
+Upstream-Status: Submitted [https://github.com/MariaDB/server/pull/4452]
+Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com>
+---
+ unittest/mysys/my_tzinfo-t.c | 14 ++++++++++++++
+ 1 file changed, 14 insertions(+)
+
+diff --git a/unittest/mysys/my_tzinfo-t.c b/unittest/mysys/my_tzinfo-t.c
+index b38ebd37..585d52f8 100644
+--- a/unittest/mysys/my_tzinfo-t.c
++++ b/unittest/mysys/my_tzinfo-t.c
+@@ -112,6 +112,20 @@ void test_timezone(const char *tz_env, const char **expected_tznames,
+     }
+   }
+   ok(found, "%s: timezone_name = %s", tz_env, timezone_name);
++
++#if defined __linux__ && !defined __GLIBC__ && !defined __UCLIBC__
++  /*
++    MUSL incorrectly calculates UTC offsets and abbreviations
++    for certain values of TZ (DST related). See MDEV-38029
++    Skip tests in this case.
++  */
++  if (!strcmp(tz_env, "PST8PDT") || !strcmp(tz_env, "GST-1GDT"))
++  {
++    skip(6, "musl UTC offset/abbreviation bug, tzname %s, see MDEV-38029", tz_env);
++    return;
++  }
++#endif
++
+   my_tzinfo(SUMMER_TIMESTAMP, &tz);
+   ok(summer_gmt_off == tz.seconds_offset, "%s: Summer GMT offset %ld", tz_env, tz.seconds_offset);
+   check_utc_offset(SUMMER_TIMESTAMP,tz.seconds_offset, tz_env);