Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-3506

LP:782223 - Query_cache::resize() frees memory containing active locks

    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

            Hide
            wlad Vladislav Vaintroub added a comment -

            Re: Query_cache::resize() frees memory containing active locks
            Release in 5.2.7

            Show
            wlad Vladislav Vaintroub added a comment - Re: Query_cache::resize() frees memory containing active locks Release in 5.2.7
            Hide
            ratzpo Rasmus Johansson added a comment -

            Launchpad bug id: 782223

            Show
            ratzpo Rasmus Johansson added a comment - Launchpad bug id: 782223

              People

              • Assignee:
                wlad Vladislav Vaintroub
                Reporter:
                wlad Vladislav Vaintroub
              • Votes:
                0 Vote for this issue
                Watchers:
                0 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: