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

Johnu George commented on MNEMONIC-215:
---------------------------------------

Problem is little more complex. We cannot do get() before destroy() in all 
cases.

We have two situations. 
1. Delete only one node given the pointer to the node. Rest all nodes are 
intact (This operation is done during removal of a node)
2. Delete all nodes given a start point (This operation is needed when we 
destroy the linkedlist and nodes in the linkedlist are no more needed)

Same is the case for SetNext(). 

> Memory leak when LinkedList element is destroyed
> ------------------------------------------------
>
>                 Key: MNEMONIC-215
>                 URL: https://issues.apache.org/jira/browse/MNEMONIC-215
>             Project: Mnemonic
>          Issue Type: Bug
>            Reporter: Johnu George
>            Assignee: Wang, Gang
>            Priority: Critical
>             Fix For: 0.6.0-incubating
>
>
> Here is the implementation of the destroy function in LinkedList node
>   @Override
>   public void destroy() throws RetrieveDurableEntityError {
>     m_holder.destroy();
>     if (null != m_item) {
>       m_item.destroy();
>       m_item = null;
>     }
>     if (null != m_next) {
>       m_next.destroy();
>       m_next = null;
>     }
>   }
> Next is destroyed only when m_next is not null. m_next can also be null if 
> next item is not loaded into memory from PMem. It is required to first 
> restore the item using getNext and then call destroy. 



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to