Details
-
Bug
-
Resolution: Fixed
-
Major
-
.master, 3.1.4, 4.1.1
-
Security Level: Public
-
None
-
Untriaged
-
Yes
Description
ActiveStream and ActiveStreamCheckpointProcessorTask both hold a ref-counted pointer to each other.
As a result of this there is a memory leak when a DCPProducer is deleted, as ActiveStream and ActiveStreamCheckpointProcessorTask mutually hold the ref-count of the other up.
This code was triggered by one of the fixes for MB-16632 - specifically http://review.couchbase.org/#/c/57148/.
For each created (and deleted) DCPProducer, we appear to leak ~4KB of memory (measured via stream_test). I haven't confirmed this in full-stack tests.
Attachments
For Gerrit Dashboard: MB-18171 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
60054,1 | MB-18171: Fix cyclic ref between ActiveStream and it's checkpoint task | master | ep-engine | Status: ABANDONED | 0 | -1 |
60060,4 | MB-18171: Break cyclic reference between ActiveStream & ChkptProcesser | 3.0.x | ep-engine | Status: MERGED | +2 | +1 |
60062,6 | MB-18171: Break cyclic reference between ActiveStream & ChkptProcesser | master | ep-engine | Status: ABANDONED | -2 | -1 |
60137,1 | Merge remote-tracking branch 'couchbase/3.0.x' into 'couchbase/sherlock' | sherlock | ep-engine | Status: MERGED | +2 | +1 |
60138,1 | Merge remote-tracking branch 'couchbase/sherlock' into 'couchbase/master' | master | ep-engine | Status: MERGED | +2 | +1 |