0

I'm trying to update some of our database's columns from utf8mb3 to utf8mb4, but while trying to execute the query I lose connection, because the server crashes. Are my buffers too small or is there something different wrong. The table I'm trying to update has about 132k records, and the column size is an average of 3kb.

ALTER TABLE table
    MODIFY COLUMN
    column longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL
;

Logs:

2024-01-29 12:23:06 0 [Warning] InnoDB: Retry attempts for writing partial data failed.
2024-01-29 12:23:06 0 [ERROR] [FATAL] InnoDB: write("ib_logfile0") returned I/O error
240129 12:23:06 [ERROR] mysqld got signal 6 ;
This could be because you hit a bug. It is also possible that this binary
or one of the libraries it was linked against is corrupt, improperly built,
or misconfigured. This error can also be caused by malfunctioning hardware.

To report this bug, see https://mariadb.com/kb/en/reporting-bugs

We will try our best to scrape up some info that will hopefully help
diagnose the problem, but since we have already crashed, 
something is definitely wrong and this may fail.

Server version: 10.11.4-MariaDB-1:10.11.4+maria~ubu2004-log source revision: 4e2b93dffef2414a11ca5edc8d215f57ee5010e5
key_buffer_size=134217728
read_buffer_size=131072
max_used_connections=4
max_threads=377
thread_count=4
It is possible that mysqld could use up to 
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 961373 K  bytes of memory
Hope that's ok; if not, decrease some variables in the equation.
8
  • Is there a chance that you've run out of disk space?
    – mustaccio
    Commented Jan 29 at 13:15
  • I don't think so this is my df output: /dev/vda1 78G 38G 40G 49% / . So I have about 38 gigs available, that should be more than enough. Commented Jan 29 at 14:19
  • I think it would be useful to monitor the actual utilisation while the ALTER command is running.
    – mustaccio
    Commented Jan 29 at 14:25
  • Please tell us the output of SELECT @@global.inndb_buffer_pool_size/power(1024,3) ibpsize_GB, @@global.innodb_log_file_size innodb_log_file_size, @@global.innodb_log_buffer_size innodb_log_buffer_size; Commented Jan 29 at 16:05
  • 1
    To find more signs of failing hardware, you could check the output of sudo smartctl -a /dev/vda if the operation is allowed, or to execute a corresponding command on the virtualization hypervisor on the actual storage hardware. It could also be helpful to check all logs for any error messages about the storage. Commented Feb 5 at 8:52

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.