Bug #78381 | Dropped event operations removed too early after initial restart | ||
---|---|---|---|
Submitted: | 9 Sep 2015 12:57 | Modified: | 15 Oct 2015 12:03 |
Reporter: | Ole John Aske | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Cluster: NDB API | Severity: | S3 (Non-critical) |
Version: | 7.4.7 | OS: | Any |
Assigned to: | CPU Architecture: | Any |
[9 Sep 2015 12:57]
Ole John Aske
[15 Oct 2015 12:03]
Jon Stephens
Fixed in NDB 7.4.9. Documented in the changelog as shown here: Garbage collection is performed on several objects in the implementation of NdbEventOperation, based on which GCIs have been consumed by clients, including those that have been dropped by Ndb::dropEventOperation(). In this implementation, the assumption was made that the GCI is always monotonically increasing, although this is not the case during an initial restart, when the GCI is reset. This could lead to event objects in the NDB API being released prematurely or not at all, in the latter case causing a resource leak. To prevent this from happening, the NDB event object implementation now tracks internally both the GCI and the generation of the GCI; the generation is incremented whenever the node process is restarted, and this value is now used to provide a monotonically increasing sequence. Closed.