| Bug #92332 | show plugins cause crash in debug mode when audit plugin is deinitializing | ||
|---|---|---|---|
| Submitted: | 7 Sep 2018 7:15 | Modified: | 7 Sep 2018 10:06 |
| Reporter: | yx jiang | Email Updates: | |
| Status: | Verified | Impact on me: | |
| Category: | MySQL Server: Information schema | Severity: | S3 (Non-critical) |
| Version: | 5.7.18, 5.7.23 | OS: | Any |
| Assigned to: | CPU Architecture: | Any | |
| Tags: | crash, plugin, show | ||
[7 Sep 2018 10:06]
MySQL Verification Team
Hello yx jiang, Thank you for the report. thanks, Umesh
[7 Sep 2018 10:21]
MySQL Verification Team
Please note that in order to submit contributions you must first sign the Oracle Contribution Agreement (OCA). For additional information please check http://www.oracle.com/technetwork/community/oca-486395.html. If you have any questions, please contact the MySQL community team.

Description: Processing plugin state of PLUGIN_IS_DYING is missing in function show_plugins. How to repeat: Modify audit_null.c. Sleep 30 second in function audit_null_plugin_deinit code like below static int audit_null_plugin_deinit(void *arg MY_ATTRIBUTE((unused))) { sleep(30); return(0); } session 1 install plugin null_audit soname 'adt_null.so'; uninstall plugin null_audit; session2 show plugins; Suggested fix: diff --git a/sql/sql_show.cc b/sql/sql_show.cc index cccef17..0810fe4 100644 --- a/sql/sql_show.cc +++ b/sql/sql_show.cc @@ -179,6 +179,9 @@ static my_bool show_plugins(THD *thd, plugin_ref plugin, case PLUGIN_IS_READY: table->field[2]->store(STRING_WITH_LEN("ACTIVE"), cs); break; + case PLUGIN_IS_DYING: + table->field[2]->store(STRING_WITH_LEN("DYING"), cs); + break; case PLUGIN_IS_DISABLED: table->field[2]->store(STRING_WITH_LEN("DISABLED"), cs); break;