Bug #117881 MY-013935 error message occurs frequently

Submitted: 4 Apr 2025 2:01 Modified: 4 Apr 2025 11:58
Reporter: SeWoong Jeon Email Updates:
Status: Duplicate Impact on me:
None 
Category:MySQL Server Severity:S3 (Non-critical)
Version:8.4.4 OS:Linux (Rocky Linux 8.8)
Assigned to: Assigned Account CPU Architecture:x86 (4.18.0-477.21.1.el8_8.x86_64)
Tags: ER_CONDITIONAL_DEBUG, IO-layer timeout, MY-013935

[4 Apr 2025 2:01] SeWoong Jeon
Description:
Hello,
I am frequently getting the following error message on my MySQL 8.4.4 server:

2025-04-03T21:40:00.303896+09:00 22437 [ERROR] [MY-013935] [Server] IO-layer timeout before wait_timeout was reached.
2025-04-03T21:40:00.303927+09:00 22436 [ERROR] [MY-013935] [Server] IO-layer timeout before wait_timeout was reached.
2025-04-04T00:19:28.559877+09:00 28983 [ERROR] [MY-013935] [Server] IO-layer timeout before wait_timeout was reached.
2025-04-04T00:19:28.559866+09:00 29028 [ERROR] [MY-013935] [Server] IO-layer timeout before wait_timeout was reached.
2025-04-04T00:23:17.935869+09:00 29126 [ERROR] [MY-013935] [Server] IO-layer timeout before wait_timeout was reached.
2025-04-04T00:23:17.935887+09:00 29127 [ERROR] [MY-013935] [Server] IO-layer timeout before wait_timeout was reached.
...

This is a newly created test database server with almost zero traffic and minimal system load.

12:00:01 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
12:17:01 AM     all      1.88      0.00      0.97      0.08      0.00     97.07
12:18:01 AM     all      1.93      0.00      0.92      0.08      0.00     97.06
12:19:01 AM     all      2.03      0.00      1.02      0.17      0.00     96.77
12:20:01 AM     all      1.99      0.00      1.01      0.17      0.00     96.83
12:21:01 AM     all      1.91      0.00      0.96      0.09      0.00     97.04
12:22:01 AM     all      1.90      0.00      0.95      0.08      0.00     97.07
12:23:01 AM     all      1.91      0.00      0.96      0.08      0.00     97.05
12:24:01 AM     all      1.86      0.00      0.95      0.08      0.00     97.11
12:25:01 AM     all      1.93      0.00      0.96      0.09      0.00     97.02

According to the MySQL error documentation, this error is identified as ER_CONDITIONAL_DEBUG. 
https://dev.mysql.com/doc/mysql-errors/8.4/en/server-error-reference.html#error_er_conditi...

Could this be a debug-level message?
Could you please help me determine what is causing this error and suggest ways to prevent it from occurring?

=========

The my.cnf configuration is as follows.

[mysqld]
user    = mysql
port    = 3306
basedir = /db/mysql_844
datadir = /db/mysql_844/data
plugin_dir = /db/mysql_844/lib/plugin
lc_messages_dir = /db/mysql_844/share
tmpdir  = /db/mysql_844/tmp
socket  = /db/mysql_844/tmp/mysql.sock

binlog_cache_size = 1M
binlog_expire_logs_seconds = 259200 
binlog_rows_query_log_events = ON
caching_sha2_password_auto_generate_rsa_keys = on
character_set_server=utf8mb4
default_storage_engine=InnoDB
default-time-zone = 'Asia/Seoul'
event_scheduler=on
group_concat_max_len = 131072
interactive_timeout = 31536000
internal_tmp_mem_storage_engine = MEMORY
join_buffer_size = 8M
local_infile = 0
lock_wait_timeout = 60
long_query_time = 0.5
log-bin = mysql-bin
log_error_suppression_list = 'MY-10956,MY-010957'
log_error_verbosity = 2
log_output = FILE
log_timestamps = SYSTEM
max_allowed_packet = 1G
max_binlog_size = 1G
max_connect_errors = 999999
max_connections = 30000
max_heap_table_size = 1G
max_prepared_stmt_count = 1048576
mysqlx = OFF
read_buffer_size = 2M
read_rnd_buffer_size = 16M
secure_file_priv = '/work'
skip_name_resolve = ON
slow_query_log = ON
sort_buffer_size = 1M
sql_mode=STRICT_TRANS_TABLES
sync-binlog = 1
sysdate-is-now
table_open_cache = 2000
table_open_cache_instances = 16
thread_cache_size = 128
tmp_table_size = 64M
transaction-isolation = READ-COMMITTED
wait_timeout = 31536000

information_schema_stats_expiry = 3600
performance_schema = ON

innodb_adaptive_hash_index = OFF
innodb_buffer_pool_dump_at_shutdown = ON
innodb_buffer_pool_in_core_file = OFF
innodb_buffer_pool_instances = 2 
innodb_buffer_pool_load_at_startup = ON
innodb_buffer_pool_size = 4G
innodb_data_file_path = ibdata1:512M:autoextend
innodb_ddl_buffer_size = 1G
innodb_doublewrite_files = 2
innodb_doublewrite_pages = 128
innodb_file_per_table = ON
innodb_flush_log_at_trx_commit = 1
innodb_flush_method = O_DIRECT            # if supported
# innodb_force_recovery=1
innodb_lock_wait_timeout = 60
innodb_log_buffer_size = 64M
innodb_numa_interleave = ON
innodb_page_size = 16384
innodb_purge_threads = 1
innodb_read_io_threads = 4
innodb_redo_log_capacity = 8G
innodb_stats_on_metadata = OFF
innodb_strict_mode = 1
innodb_temp_data_file_path = ibtmp1:512M:autoextend
innodb_use_fdatasync = ON
innodb_thread_concurrency = 0
innodb_write_io_threads = 4

# for SAS/SATA
innodb_flush_neighbors = 1
innodb_io_capacity = 2000
innodb_io_capacity_max = 4000

server-id = 24
gtid_mode = on
enforce_gtid_consistency = on
relay-log = relay-bin
replica_parallel_workers = 4
replica_preserve_commit_order = ON
rpl_semi_sync_replica_enabled = 1
rpl_semi_sync_source_enabled = 1
rpl_semi_sync_source_timeout = 500

How to repeat:
cannot be reproduced
[4 Apr 2025 11:58] MySQL Verification Team
Duplicate of Bug #117678

This is just an informational message that the connection dropped before it was expected to timeout from wait_timeout.

Lowering tcp_keepalive_time could help.
https://tldp.org/HOWTO/TCP-Keepalive-HOWTO/usingkeepalive.html

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

Page generated in 0.045 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.