Bug #81487 | innodb buf_resize_thread - release mutexes when no change (contribution) | ||
---|---|---|---|
Submitted: | 18 May 2016 12:45 | Modified: | 19 May 2016 4:54 |
Reporter: | OCA Admin (OCA) | Email Updates: | |
Status: | Not a Bug | Impact on me: | |
Category: | MySQL Server: InnoDB storage engine | Severity: | S3 (Non-critical) |
Version: | 5.7 | OS: | Any |
Assigned to: | Shaohua Wang | CPU Architecture: | Any |
[18 May 2016 12:45]
OCA Admin
[18 May 2016 12:45]
OCA Admin
Contribution submitted via Github - innodb buf_resize_thread - release mutexes when no change (*) Contribution by Daniel Black (Github grooverdan, mysql-server/pull/74#issuecomment-219876297): I confirm the code being submitted is offered under the terms of the OCA, and that I am authorized to contribute it.
Contribution: git_patch_70308332.txt (text/plain), 1.03 KiB.
[18 May 2016 12:55]
MySQL Verification Team
Hello Daniel, Thank you for the report and contribution. Thanks, Umesh
[19 May 2016 4:14]
Daniel Black
I made a mistake. This is invalid. buf_pool_mutex_exit_all is called at the beginning of the 'if' statement which is sufficient. Sorry for the noise.
[19 May 2016 4:54]
Shaohua Wang
We do release all mutexes in buf_resize_thread(). See https://github.com/mysql/mysql-server/blob/5.7/storage/innobase/buf/buf0buf.cc buf_pool_mutex_enter_all(); if (srv_buf_pool_old_size == srv_buf_pool_size) { buf_pool_mutex_exit_all(); -- released!!! std::ostringstream sout; sout << "Size did not change (old size = new size = " << srv_buf_pool_size << ". Nothing to do."; buf_resize_status(sout.str().c_str()); /* nothing to do */ continue; } buf_pool_mutex_exit_all();