groovy-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (GROOVY-7646) Classes generated by Eval() never collected from Permgen/Metaspace
Date Mon, 10 Oct 2016 09:44:20 GMT

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

ASF GitHub Bot commented on GROOVY-7646:
----------------------------------------

GitHub user jochenberger opened a pull request:

    https://github.com/apache/groovy/pull/445

    GROOVY-7646: remove classes via InvokerHelper when closing the GroovyClassLoader or flushing
its cache

    See #325, this ensures that classes are properly cleaned up after when their ClassLoader
or its cache are discarded. Together with #444, this should allow classes to be GC'ed as soon
as they are not used anymore.

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/jochenberger/groovy remove-classes-upon-classloader-close

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/groovy/pull/445.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #445
    
----
commit a0e294afbdd1630c2235eb1b5366c6c0db783af1
Author: Jochen Berger <fooberger@gmail.com>
Date:   2016-10-10T09:40:53Z

    GROOVY-7646: remove classes via InvokerHelper when closing the GroovyClassLoader or flushing
its cache

----


> Classes generated by Eval() never collected from Permgen/Metaspace
> ------------------------------------------------------------------
>
>                 Key: GROOVY-7646
>                 URL: https://issues.apache.org/jira/browse/GROOVY-7646
>             Project: Groovy
>          Issue Type: Bug
>          Components: groovy-runtime
>    Affects Versions: 2.4.5
>         Environment: Oracle jdk8u51 and jdk8u66
>            Reporter: Isaac Dooley
>
> It seems classes generated by Eval() are never collected, thus causing PermGen or Metaspace
to fill up and the JVM to hang/crash.
> Reproduce by running the following code, after setting java option {{-XX:MaxMetaspaceSize=50m}}.

> {code}
> 100000.times{ x -> assert 10 == Eval.x(2, 'x * 4 + 2;') }
> {code}
> After about 2700 calls to Eval the program will crash with OutOfMemoryError, 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message