[
https://issues.apache.org/jira/browse/HBASE-16164?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15360126#comment-15360126
]
Hudson commented on HBASE-16164:
--------------------------------
FAILURE: Integrated in HBase-Trunk_matrix #1154 (See
[https://builds.apache.org/job/HBase-Trunk_matrix/1154/])
HBASE-16164 Missing close of new compacted segments in few occasions
(anoopsamjohn: rev 97f2294bfd17f7ae762d2e72ab0f25028b78f3fe)
*
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MemStoreCompactor.java
*
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/CompactionPipeline.java
*
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/CompactingMemStore.java
> Missing close of new compacted segments in few occasions which might leak
> MSLAB chunks from pool
> ------------------------------------------------------------------------------------------------
>
> Key: HBASE-16164
> URL: https://issues.apache.org/jira/browse/HBASE-16164
> Project: HBase
> Issue Type: Sub-task
> Affects Versions: 2.0.0
> Reporter: Anoop Sam John
> Assignee: Anoop Sam John
> Priority: Critical
> Fix For: 2.0.0
>
> Attachments: HBASE-16164.patch
>
>
> An in memory compaction of N segments in progress. Inn between snapshot()
> call comes. We will stop the in progress compaction then. This just sets an
> AtomicBoolean. We check this boolean state in the compaction loop (while
> loop reading the cells from the segments) and before swapping the segments.
> But if this scenario comes, we are just ignoring the new newly compacted
> Segment. This is a problem maker when we work with MSLAB pool. The new
> segment would have acquired some chunks but when will they get released? As
> we dont close the segment this will leak them.
> Also in swap we have
> {code}
> public boolean swap(VersionedSegmentsList versionedList, ImmutableSegment
> segment) {
> if(versionedList.getVersion() != version) {
> return false;
> }
> LinkedList<ImmutableSegment> suffix;
> synchronized (pipeline){
> if(versionedList.getVersion() != version) {
> return false;
> }
> {code}
> I dont see any possibility for this code flow to happen. Still for
> correctness, we should close the segment here too.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)