Common SQL Errors

MySQL Error 93: EE_PTHREAD_KILL_FAILED - How to Fix and Prevent

Galaxy Team
August 5, 2025

The server failed to send a POSIX signal to a thread (pthread_kill), indicating an OS-level or resource issue that blocks thread management.

Sign up for the latest in common SQL errors from the Galaxy Team!
Welcome to the Galaxy, Guardian!
You'll be receiving a confirmation email

Follow us on twitter :)
Oops! Something went wrong while submitting the form.

What is MySQL error 93 (EE_PTHREAD_KILL_FAILED)?

MySQL Error 93: EE_PTHREAD_KILL_FAILED occurs when the server cannot signal an internal thread via pthread_kill. Check OS limits, thread state, and upgrade to 8.0.31+ for the official patch.

Error Highlights

Typical Error Message

pthread_kill(thread_id:%lu, signal:%s) returned '%s'. EE_PTHREAD_KILL_FAILED was added in 8.0.31.

Error Type

Runtime Error

Language

MySQL

Symbol

EE_PTHREAD_KILL_FAILED

Error Code

93

SQL State

Explanation

Table of Contents

What is MySQL Error 93 (EE_PTHREAD_KILL_FAILED)?

MySQL error 93, condition EE_PTHREAD_KILL_FAILED, is raised when the server calls pthread_kill(thread_id, signal) and the operating system returns an error. The server therefore cannot signal, suspend, or terminate the targeted thread.

The problem appears in MySQL 8.0.31 or later, because that version introduced explicit detection for this failure.

If unresolved, transactions may hang, shutdown can stall, or the instance can crash.

What Causes This Error?

Most cases trace back to invalid thread IDs, zombie threads, exhausted OS signal queues, or restrictive ulimit settings. Kernel bugs or aggressive security modules can also block signals.

How to Fix MySQL Error 93

Identify the thread and signal that failed using MySQL error log details. Verify with SHOW PROCESSLIST; whether the thread still exists.

If it is gone, a stale ID caused the issue.

Next, inspect OS limits: ulimit -a for open files, pending signals, and max user processes. Raise limits or tune /etc/security/limits.conf if necessary.

Common Scenarios and Solutions

When error 93 appears during shutdown, perform a controlled restart and reduce innodb_kill_idle_transaction aggressiveness.

For high-concurrency workloads, lower max_connections or enable thread_pool to cap active worker threads.

If the error repeats after upgrade, rebuild MySQL with upgraded glibc or patch to the newest 8.0 release where Oracle has addressed race conditions in pthread_kill handling.

Best Practices to Avoid This Error

Monitor thread counts with information_schema.PROCESSLIST, keep OS packages current, and apply MySQL updates promptly.

Use Galaxy’s query profiler to detect runaway queries early and prevent thread saturation.

Related Errors and Solutions

Errors 95 (EE_THREAD_KILL_FAILED) and 96 (EE_PTHREAD_SIGMASK_FAILED) often surface together. They share similar root causes and respond to the same OS limit checks and version upgrades.

.

Common Causes

Invalid or Stale Thread ID

The thread referenced by pthread_kill has already exited, so the kernel returns ESRCH and MySQL raises error 93.

Exhausted Pending Signal Queue

Heavy load can hit the kernel limit for queued signals, causing pthread_kill to fail with EAGAIN.

Restrictive ulimit Settings

Low values for max user processes or pending signals prevent new signal delivery and trigger this error.

Kernel or glibc Bugs

Outdated kernels and libraries contain race conditions that mis-handle pthread_kill for rapidly exiting threads.

Security Modules Blocking Signals

SELinux or AppArmor profiles that forbid specific signals can block pthread_kill calls inside mysqld.

.

Related Errors

FAQs

Does error 93 mean my data is corrupted?

No. The error concerns thread signaling, not storage. Still, restart the server to avoid pending locks.

Can I ignore occasional EE_PTHREAD_KILL_FAILED messages?

Sporadic entries under extreme load are usually harmless, but frequent events warrant investigation of OS limits and thread pool settings.

Is this a MySQL bug or an operating system bug?

Both are possible. MySQL 8.0.31+ flags the condition, while some older kernels mishandle pthread_kill. Always update both layers.

How can Galaxy help?

Galaxy’s profiler highlights long-running queries early, helping you cap problematic threads and prevent error 93 before it surfaces.

Start Querying with the Modern SQL Editor Today!
Welcome to the Galaxy, Guardian!
You'll be receiving a confirmation email

Follow us on twitter :)
Oops! Something went wrong while submitting the form.

Check out some other errors

Trusted by top engineers on high-velocity teams
Aryeo Logo
Assort Health
Curri
Rubie Logo
Bauhealth Logo
Truvideo Logo