You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@felix.apache.org by "Andrey Davydov (Jira)" <ji...@apache.org> on 2020/03/18 13:20:00 UTC

[jira] [Commented] (FELIX-6243) Link to root Felix object leaks to GC root

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

Andrey Davydov commented on FELIX-6243:
---------------------------------------

When FelixConstants.RESOLVER_PARALLELISM is exactly one, Felix object not collected by GC too, but I can't understend why. JvisualVM says that it don't see GC root for Felix object =((( 

> Link to root Felix object leaks to GC root
> ------------------------------------------
>
>                 Key: FELIX-6243
>                 URL: https://issues.apache.org/jira/browse/FELIX-6243
>             Project: Felix
>          Issue Type: Bug
>    Affects Versions: framework-6.0.3
>            Reporter: Andrey Davydov
>            Priority: Major
>         Attachments: felix.png
>
>
> Tested on java8.
> Felix object creates StatefulResolver and then  StatefulResolver  get link to Felix. 
> StatefulResolver creates Executor in getExecutor() using nested class as ThreadFactory (when FelixConstants.RESOLVER_PARALLELISM greater then 1)
>  
> So every thread in Executor has link to Executor
> Executor has link to ThreadFactory
> ThreadFactory has link to StatefulResolver, because it is nested
> StatefulResolver has link to Felix
>  
> And it is the way from GC root to Felix and GC can't collect Felix after Felix.stop() and all external refs to Felix cut.
>  
>  
>  
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)