Bug #92044 FR: configurable timeout for long semaphore wait until server dies
Submitted: 16 Aug 2018 12:41
Reporter: Shane Bester (Platinum Quality Contributor) Email Updates:
Status: Verified Impact on me:
Category:MySQL Server: InnoDB storage engine Severity:S4 (Feature request)
Version:5.7 OS:Any
Assigned to: CPU Architecture:Any

[16 Aug 2018 12:41] Shane Bester
Can we please get a configuration option that sets time until innodb kills mysqld after long semaphore wait?

The problem is customers/users think the mysqld is always to blame since it is the one who voluntarily crashes.

We need the mysqld accessible even in it's apparent hung state so they can login and run some SHOW PROCESSLIST and diagnostic queries. 
Often times mysqld is simply overloaded or waiting on I/O.

Core files are unrealistic as a diagnostic tool, since they are too big.

If customer want to kill -9 mysqld himself,  they can do it. 
InnoDB shouldn't be the one deciding it is time to die.

How to repeat:
[10 Oct 2018 6:52] MySQL Verification Team
See https://bugs.mysql.com/bug.php?id=91977 for why we need this.
[9 Jan 2019 6:16] MySQL Verification Team
Another example https://bugs.mysql.com/bug.php?id=93746

If there is a true deadlock,  then customers can run "pstack" or gdb to get thread stacks for further analysis,  but if it is a performance-related and temporary "hang" then it'll clear up eventually and no need to kill mysqld.
[4 Feb 2019 6:20] MySQL Verification Team
another example of why we need this option,  innodb is not able to make valid assumptions about whether the server is hanging or busy with actual work: