| Bug #119418 | MyISAM ALTER TABLE random fails | ||
|---|---|---|---|
| Submitted: | 18 Nov 8:23 | Modified: | 25 Nov 11:21 |
| Reporter: | Jukka Kangas | Email Updates: | |
| Status: | Open | Impact on me: | |
| 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 8:23]
Jukka Kangas
[18 Nov 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 14:45]
MySQL Verification Team
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 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 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 5:32]
Jukka Kangas
I was able to replicate this on version 8.0.44 as well (docker container, Mac OS ARM).
[20 Nov 5:48]
MySQL Verification Team
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 6:24]
MySQL Verification Team
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 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.
