Bug #99219 | Innodb freeze running REPLACE statements | ||
---|---|---|---|
Submitted: | 9 Apr 2020 12:16 | Modified: | 10 Apr 2020 12:19 |
Reporter: | kfpanda kf | Email Updates: | |
Status: | Not a Bug | Impact on me: | |
Category: | MySQL Server: InnoDB storage engine | Severity: | S2 (Serious) |
Version: | 5.7.27 | OS: | Any |
Assigned to: | CPU Architecture: | Any |
[9 Apr 2020 12:16]
kfpanda kf
[9 Apr 2020 13:03]
MySQL Verification Team
HI Mr. kf, Thank you for your bug report. However, I do not see a bug here. Simply, there are three functions that are using that mutex. Beside the one that you mentioned, there is also a function for printing InnoDB status and the one that is exporting it. Hence, what you have is a possibility that three different threads could read or change same data, which is why usage of mutex is so important. Hence, I do not think that simply returning would be acceptable solution. Not so much based on the data that you have provided us. What we would need is the analysis of which thread was holding this mutex and why would is it holding it for such a long time. That info would be more helpful to you or to us. For that purpose you can use both InnoDB status and performance schema. Let us know what you have found out.
[9 Apr 2020 15:26]
kfpanda kf
Because of the amount of content, I put the details in the attached file. Note: I think this problem may be related to memoryBarrier
[9 Apr 2020 15:28]
kfpanda kf
The detailed information
Attachment: detail.txt (text/plain), 13.71 KiB.
[10 Apr 2020 12:19]
MySQL Verification Team
HI Mr. kf, Thank you for your reply. However, your detailed stacktraces only exhibit what I have described. There are three functions, each of which can be called by a different thread, which is why this mutex is very much necessary. Regarding memory fence, it is resolved in the OS kernel, not in the user space. Not a bug.