From 153e30ab5ce4989d49b1d61292c3ab19d8ec767b Mon Sep 17 00:00:00 2001 From: Arcadiy Ivanov Date: Fri, 28 Aug 2026 05:08:42 -0400 Subject: [PATCH] MDEV-40946 Two heap blob tests fail with the embedded server Both tests exercise server facilities that an embedded build does not have, so neither can run there. `INSERT DELAYED` has no delayed insert thread in an embedded build. The whole facility sits inside `#ifndef EMBEDDED_LIBRARY`, including the check that routes a delayed statement away from the ordinary insert path, so the statement is an ordinary insert and `DELAYED_WRITES` stays at 0. `ALTER TABLE ... LOCK=NONE` is never online in an embedded build. `online` is hard-wired to `false` when `HAVE_REPLICATION` is undefined, and `my_global.h` leaves it undefined for `EMBEDDED_LIBRARY`. The source lock is therefore not downgraded, the `alter_table_online_downgraded` sync point is never reached, and the test's `WAIT_FOR downgraded` runs out its `debug_sync` timeout. Skip both with `include/not_embedded.inc`, as `main.delayed` and `main.alter_table_online_debug` already do. --- mysql-test/suite/heap/blob_delayed_insert.test | 5 +++++ mysql-test/suite/heap/blob_online_alter.test | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/mysql-test/suite/heap/blob_delayed_insert.test b/mysql-test/suite/heap/blob_delayed_insert.test index eeb29b77c27e6..2b90ee520cffa 100644 --- a/mysql-test/suite/heap/blob_delayed_insert.test +++ b/mysql-test/suite/heap/blob_delayed_insert.test @@ -11,6 +11,11 @@ # The binary log must be off: with statement binlogging INSERT DELAYED is # downgraded to an ordinary write lock and the delayed thread never runs. # +# The embedded server has no delayed insert thread at all: the facility is +# compiled out there, INSERT DELAYED is an ordinary insert, and no lock +# cycle takes place. +# +--source include/not_embedded.inc CREATE TABLE t1 (a INT, b BLOB) ENGINE=MEMORY; diff --git a/mysql-test/suite/heap/blob_online_alter.test b/mysql-test/suite/heap/blob_online_alter.test index c6891493212c4..14a6ed129342d 100644 --- a/mysql-test/suite/heap/blob_online_alter.test +++ b/mysql-test/suite/heap/blob_online_alter.test @@ -12,7 +12,12 @@ # the very statements this test needs to run. It is released at the # post-downgrade point and only made to wait once it is replaying. # +# The embedded server never runs an ALTER online: the online alter log is +# part of the replication code, which is not built there, so the source +# lock is not downgraded and the sync points below are never reached. +# --source include/have_debug_sync.inc +--source include/not_embedded.inc CREATE TABLE t1 (a INT PRIMARY KEY, b BLOB) ENGINE=MEMORY; INSERT INTO t1 VALUES (1, REPEAT('x', 300)), (2, REPEAT('y', 300)),