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

dict_stats_process_entry_from_defrag_pool() fails to call dict_table_close() when index==NULL

    XMLWordPrintable

Details

    Description

      The function dict_stats_process_entry_from_defrag_pool() fails to invoke dict_table_close() when an index does not exist in the table (for example because it has been dropped):

      	dict_index_t*	index = dict_table_find_index_on_id(table, index_id);
       
      	if (index == NULL) {
      		return;
      	}
       
      	/* Check whether index is corrupted */
      	if (dict_index_is_corrupted(index)) {
      		dict_table_close(table, FALSE, FALSE);
      		return;
      	}
      

      As you can see above, existing but corrupted indexes are handled correctly.

      Failure to release a table handle should cause an infinite wait at some point in InnoDB, at least in DROP TABLE:

      2017-12-02 21:06:52 139784064132864 [Warning] InnoDB: Waited 270 seconds for ref-count on table: `db`.`tablename` space: 12345
      

      Attachments

        Issue Links

          Activity

            People

              marko Marko Mäkelä
              marko Marko Mäkelä
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.