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:
None 
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 7:15] yx jiang
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;
[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.