accumulo-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF subversion and git services (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (ACCUMULO-1948) Tablet constructor leaks this
Date Tue, 04 Feb 2014 20:04:13 GMT

    [ https://issues.apache.org/jira/browse/ACCUMULO-1948?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13891121#comment-13891121
] 

ASF subversion and git services commented on ACCUMULO-1948:
-----------------------------------------------------------

Commit eade3b59ddd95732cbfc635eadf6447c6b3108d2 in branch refs/heads/master from [~bhavanki]
[ https://git-wip-us.apache.org/repos/asf?p=accumulo.git;h=eade3b5 ]

ACCUMULO-1948 Tablet constructor no longer leaks this

The core Tablet constructor no longer sets this on the TabletResourceManager passed to it.
The TabletResourceManager instance is created now without a Tablet reference, but only
with its key extent and configuration, and so it can be constructed first and safely passed
to the Tablet constructor. This alteration in TabletResourceManager drove changes to several
other locations which had been expecting a tablet reference to be available. In most of those
places, the key extent takes its place.

However, Keith Turner pointed out that, without a tablet reference in the TabletStateImpl
class (memory report) used to guide minor compaction, it's possible that a report logged
against a tablet that was since unloaded could cause compaction to start on a new instance
of that tablet that had just been reloaded. In order to ensure that cannot happen, the
tablet reference remains, so that the same object is used to decide on compaction and
potentially perform compaction.

In addition, the method of working with the memory reports was changed so that the same
snapshot of them used to decide on compactions is used to find the tablet to compact later.
This change was necessary regardless of this ticket.

Finally, the unused tabletResources field was removed from TabletServerResourceManager,
and that class also now avoids erroneously removing the memory report for a reloaded tablet
if its prior incarnation is unloaded in the scenario described above.


> Tablet constructor leaks this
> -----------------------------
>
>                 Key: ACCUMULO-1948
>                 URL: https://issues.apache.org/jira/browse/ACCUMULO-1948
>             Project: Accumulo
>          Issue Type: Bug
>            Reporter: Keith Turner
>            Assignee: Bill Havanki
>            Priority: Minor
>             Fix For: 1.7.0
>
>
> The tablet constructor leaks this when it calls {{tabletResources.setTablet(this, acuTableConf);}}
 AFAIK this is completey innocuous because nothing is really done (in 1.4 code) w/ the reference.
 Howerver, it is possible the code could be changed in the future to use the ref.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Mime
View raw message