Bug #72584 | storage/inobase/dict/dict0dict.cc | ||
---|---|---|---|
Submitted: | 8 May 2014 19:53 | Modified: | 12 May 2014 17:11 |
Reporter: | 徹 赤松 | Email Updates: | |
Status: | Not a Bug | Impact on me: | |
Category: | MySQL Server: InnoDB storage engine | Severity: | S3 (Non-critical) |
Version: | 5.7.4 | OS: | Linux |
Assigned to: | CPU Architecture: | Any | |
Tags: | dict_table_remove_from_cache_low, dict0dict.cc, innodb |
[8 May 2014 19:53]
徹 赤松
[9 May 2014 13:28]
MySQL Verification Team
Mr. Akamatsu, Thank you very much for your interest and for the analyzing our code. Please, do that in future too, as bugs can creep in quite easily. However, in this case, there is not bug. Linked lists of both foreign indices and indigenous indices are removed in both cases from last to the first and not from the first to the last one. Let us take the example of the indices. A macro UT_LIST_GET_LAST gets the last index in the linked list. That is the macro that initializes the counter. Then the function dict_index_remove_from_cache_low(table, index, lru_evict) is called. In that function, the last index in the linked list is removed, with a macro UT_LIST_REMOVE. Hence, in the next iteration, the macro UT_LIST_GET_LAST gets a NEW index that is the next one in the list, which is last, so the removal progresses from the last index to the first one. Same process is done for foreign indices.
[12 May 2014 17:11]
徹 赤松
Dir Sinisa Milivojevic, Thank you for the polite reply.