Bug #80637 SQL layer should call innobase_shutdown() if dict_init() fails
Submitted: 7 Mar 2016 10:06
Reporter: Sivert Sørumgård Email Updates:
Status: Verified Impact on me:
Category:MySQL Server: DDL Severity:S3 (Non-critical)
Version:8.0.0 OS:Any
Assigned to: CPU Architecture:Any

[7 Mar 2016 10:06] Sivert Sørumgård
While initializing the data dictionary, innobase_dict_init_files() is called. If this method fails, the server shuts down without stopping innodb properly.

How to repeat:
Run mtr test log_based_recovery with ASAN.

Suggested fix:
Call innobase_shutdown() if innobase_dict_init_files() fails.
[22 Apr 2016 10:10] Sivert Sørumgård
Posted by developer:
Seems like innodb_shutdown() is indeed being called after the failure in init_files(). However, the problem is that the initial failure happens when innodb calls srv_start() in innodb_init_files(), and hence does err out before innodb_inited is set. Then, when innodb_shutdown() is called, the code which cleans up only when innodb_inited is set, will not be called, leaving innodb_shutdown() essentially as a no-op. Transferring this bug report to innodb.
[18 Jun 2016 21:36] Omer Barnir
Posted by developer:
Reported version value updated to reflect release name change from 5.8 to 8.0
[25 Oct 2018 10:27] Erlend Dahl
Bug#85995 Server error exit due to empty datadir causes LeakSanitizer errors

was marked as a duplicate.