Bug #75014 | gtid_executed table compression thread may not wake up | ||
---|---|---|---|
Submitted: | 26 Nov 2014 21:41 | Modified: | 30 Apr 2015 15:34 |
Reporter: | Sven Sandberg | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: Replication | Severity: | S3 (Non-critical) |
Version: | 5.7 | OS: | Any |
Assigned to: | CPU Architecture: | Any |
[26 Nov 2014 21:41]
Sven Sandberg
[6 Mar 2015 8:36]
Bill Qu
Posted by developer: The committing thread and the compression thread are created in the same process, they are using the same memory. So the global variable has only been changed in a memory cache that is visible to both the committing thread and the compression thread. Did I miss something?
[6 Mar 2015 14:15]
Sven Sandberg
Posted by developer: The two threads could be executing on different cores, thus see different memory caches, which could differ unless the lock is there.
[30 Apr 2015 15:34]
David Moss
Noted in the 5.7.8 changelog: When gtid_executed_compression_period is set to a number greater than 0, there is a thread that wakes up after every number of transactions specified by gtid_executed_compression_period to perform range compression on the mysql.gtid_executed table. There was a small chance that the thread would miss a signal and not wake up, so that one pass of the compression algorithm would be missed and the table left uncompressed. The fix ensures that the thread wakes up consistently.
[14 Jun 2017 8:26]
MySQL Verification Team
https://bugs.mysql.com/bug.php?id=86692