diff mbox series

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

Message ID 20251119175829.857849-1-skandigraun@gmail.com
State New
Headers show
Series [meta-oe] mariadb: skip failing test on musl | expand

Commit Message

Gyorgy Sarvari Nov. 19, 2025, 5:58 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

Comments

Khem Raj Nov. 19, 2025, 6:05 p.m. UTC | #1
Thanks for the patch, Please rebase it on top of master-next and resend.

On Wed, Nov 19, 2025 at 9:58 AM Gyorgy Sarvari via lists.openembedded.org
<skandigraun=gmail.com@lists.openembedded.org> wrote:

> 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 --git a/meta-oe/conf/include/ptest-packagelists-meta-oe.inc
> b/meta-oe/conf/include/ptest-packagelists-meta-oe.inc
> index 96e0d87bd4..48958ff2b0 100644
> --- a/meta-oe/conf/include/ptest-packagelists-meta-oe.inc
> +++ b/meta-oe/conf/include/ptest-packagelists-meta-oe.inc
> @@ -71,7 +71,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 \
> @@ -80,4 +80,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 6e07f1ffa9..9f43e8363d 100644
> --- a/meta-oe/recipes-dbs/mysql/mariadb.inc
> +++ b/meta-oe/recipes-dbs/mysql/mariadb.inc
> @@ -25,6 +25,7 @@ SRC_URI = "
> https://archive.mariadb.org/${BP}/source/${BP}.tar.gz \
>
> file://0001-Ensure-compatibility-with-ARMv9-by-updating-.arch-di.patch \
>             file://riscv32.patch \
>             file://0001-Remove-x86-specific-loop-in-my_convert.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..b8eed1476c
> --- /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 51ab21bebcc29f7ec2e54d92e2acf9de2a555bcb Mon Sep 17 00:00:00 2001
> +From: Gyorgy Sarvari <skandigraun@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);
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#121912):
> https://lists.openembedded.org/g/openembedded-devel/message/121912
> Mute This Topic: https://lists.openembedded.org/mt/116378016/1997914
> Group Owner: openembedded-devel+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [
> raj.khem@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
>
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 96e0d87bd4..48958ff2b0 100644
--- a/meta-oe/conf/include/ptest-packagelists-meta-oe.inc
+++ b/meta-oe/conf/include/ptest-packagelists-meta-oe.inc
@@ -71,7 +71,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 \
@@ -80,4 +80,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 6e07f1ffa9..9f43e8363d 100644
--- a/meta-oe/recipes-dbs/mysql/mariadb.inc
+++ b/meta-oe/recipes-dbs/mysql/mariadb.inc
@@ -25,6 +25,7 @@  SRC_URI = "https://archive.mariadb.org/${BP}/source/${BP}.tar.gz \
            file://0001-Ensure-compatibility-with-ARMv9-by-updating-.arch-di.patch \
            file://riscv32.patch \
            file://0001-Remove-x86-specific-loop-in-my_convert.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..b8eed1476c
--- /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 51ab21bebcc29f7ec2e54d92e2acf9de2a555bcb Mon Sep 17 00:00:00 2001
+From: Gyorgy Sarvari <skandigraun@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);