Bug #119418 MyISAM ALTER TABLE random fails

Submitted: 18 Nov 2025 8:23 Modified: 25 Nov 2025 11:21
Reporter: Jukka Kangas Email Updates:
Status: Open Impact on me:
None 
Category:MySQL Server: MyISAM storage engine Severity:S3 (Non-critical)
Version:8.4.7 OS:Any
Assigned to: CPU Architecture:Any
Tags: MYISAM engine

[18 Nov 2025 8:23] Jukka Kangas
Description:
Running alter table to MyISAM table occasionally fails with error:
"Table storage engine for '<tablename>' doesn't have this option"

Cannot replicate on InnoDB engine.

How to repeat:
Running following, sometimes fails, and sometimes not:

drop table if exists `test01`;
create table `test01` (id int auto_increment, primary key (id)) engine MyISAM;
alter table `test01` add column `name` varchar(10) DEFAULT NULL;
drop table if exists `test01`;
create table `test01` (id int auto_increment, primary key (id)) engine MyISAM;
alter table `test01` add column `name` varchar(10) DEFAULT NULL;
drop table if exists `test01`;
create table `test01` (id int auto_increment, primary key (id)) engine MyISAM;
alter table `test01` add column `name` varchar(10) DEFAULT NULL;
drop table if exists `test01`;
create table `test01` (id int auto_increment, primary key (id)) engine MyISAM;
alter table `test01` add column `name` varchar(10) DEFAULT NULL;
drop table if exists `test01`;
create table `test01` (id int auto_increment, primary key (id)) engine MyISAM;
alter table `test01` add column `name` varchar(10) DEFAULT NULL;
drop table if exists `test01`;
create table `test01` (id int auto_increment, primary key (id)) engine MyISAM;
alter table `test01` add column `name` varchar(10) DEFAULT NULL;
drop table if exists `test01`;
create table `test01` (id int auto_increment, primary key (id)) engine MyISAM;
alter table `test01` add column `name` varchar(10) DEFAULT NULL;
drop table if exists `test01`;
create table `test01` (id int auto_increment, primary key (id)) engine MyISAM;
alter table `test01` add column `name` varchar(10) DEFAULT NULL;
drop table if exists `test01`;
create table `test01` (id int auto_increment, primary key (id)) engine MyISAM;
alter table `test01` add column `name` varchar(10) DEFAULT NULL;
[18 Nov 2025 8:26] Jukka Kangas
It does not need to be same table, I was able to replicate the issue with this as well:

drop table if exists `test01`;
create table `test01` (id int auto_increment, primary key (id)) engine MyISAM;
alter table `test01` add column `field` int DEFAULT NULL;

drop table if exists `test02`;
create table `test02` (id int auto_increment, primary key (id)) engine MyISAM;
alter table `test02` add column `field` int DEFAULT NULL;
[18 Nov 2025 14:45] Shane Bester
After running a few thousand:

drop table if exists `test01`;
create table `test01` (id int auto_increment, primary key (id)) engine MyISAM;
alter table `test01` add column `name` varchar(10) DEFAULT NULL;

I didn't get any such problem.
Can you show where you get the error,  and what other DML/DDL is running on server?
Group Replication/InnoDB Cluster?

Send my.cnf too.
[20 Nov 2025 5:09] Jukka Kangas
Run on docker container official mysql:8.4 (Mac OS ARM). I can replicate this using Sequel ACE client, and also with Linux docker container using PHP mysqli. Connection was without SSL.

default my.cnf, and in /etc/mysql/conf.d/local.cnf

[mysqld]
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
disable_log_bin
max_heap_table_size=256M

# Set the default character set
character-set-server = latin1
collation-server = latin1_swedish_ci

ssl-ca=/etc/mysql/certs/cacert.pem
ssl-cert=/etc/mysql/certs/mysql-latest.local.crt
ssl-key=/etc/mysql/certs/mysql-latest.local.key
#require_secure_transport = ON
[20 Nov 2025 5:11] Jukka Kangas
Screenshot of the error in Sequel Ace, same error when using php mysqli.

Attachment: Screenshot 2025-11-20 at 7.09.42.png (image/png, text), 60.52 KiB.

[20 Nov 2025 5:32] Jukka Kangas
I was able to replicate this on version 8.0.44 as well (docker container, Mac OS ARM).
[20 Nov 2025 5:48] Shane Bester
I just tried on :

 Linux xxx 5.15.0-314.193.5.4.el8uek.aarch64 #2 SMP Tue Nov 11 13:12:28 PST 2025 aarch64 aarch64 aarch64 GNU/Linux

with 8.4.7 and couldn't repeat it there either.
[20 Nov 2025 6:24] Shane Bester
I also tried on a UBSAN build of 8.4.7 on x64 linux and didn't get any warnings.

for i in {1..1000000}; do mysql -uroot --socket=/tmp/s.sock -uroot test -e"drop table if exists test01; create table test01 (id int auto_increment, primary key (id)) engine MyISAM; alter table test01 add column name varchar(10) DEFAULT NULL;" ; done ;

I don't have MacOS to test.  Does this happen on linux x64 platform too
[25 Nov 2025 11:21] Jukka Kangas
I was not able to reproduce this in docker 8.4.7 running in x86 (Kubernetes). Could be a problem just with the Mac ARM / Docker environment.

Portions of this website are copyright © 2001, 2002 The PHP Group

Page generated in 0.058 sec. using MySQL 8.4.7-u6-cloud

Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the respective copyright holders.
It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.