Details
-
Type:
Bug
-
Status: Closed
-
Priority:
Minor
-
Resolution: Fixed
-
Affects Version/s: None
-
Fix Version/s: None
-
Component/s: None
-
Labels:
Description
Found when investigating Windows application verifier errors (application verifier is sort-of valgrind).
The callstack leading of "free" containing critical section is:
mysqld!free
my_no_flags_free
Query_cache::free_cache
Query_cache::resize
fix_query_cache_size
set_var::update
sql_set_variables
mysql_execute_command
mysql_parse
The callstack of critical section allocation is :
pthread_cond_init
my_rwlock_init
Query_cache_query::init_n_lock
Query_cache::store_query
execute_sqlcom_select
mysql_execute_command
mysql_parse
Why freeing a heap block containing active critical section is bad
- in the best case (the critical section is unlocked) it may lead to resource leakage, e.g underlying Windows event objects will be leaked.
- in the worst case (critical section is locked) it could lead to random hangs when the freed memory is again reused for another critical section
Gliffy Diagrams
Attachments
Activity
- All
- Comments
- Work Log
- History
- Activity
- Transitions
Re: Query_cache::resize() frees memory containing active locks
Release in 5.2.7