Hi,

good to hear, that the problem is understood and worked on ;)
Since you guys know what the problem is, is there a way to prevent this 
to happen on jdk7 before u40?

bye Jochen

Am 30.09.2013 16:48, schrieb Coleen Phillimore:
>
> Hi,  Stefan has found the cause of the problem you have described this
> thread, but we're discussing internally how to fix it.  I'll let him
> explain.
>
> Thanks,
> Coleen
>
> On 09/26/2013 10:20 AM, Jochen Theodorou wrote:
>> Hi all,
>>
>> probably not such a good time to ask, since many of those, that could
>> answer this might be on JavaOne... but still
>>
>> On the user list we got an interesting program that makes quite some
>> problems to the jvm as it seems. The groovy program looks like this:
>>
>>>       println "Started"
>>>       for(int i = 0; i < 100; i++) {
>>>           print "."
>>>           for (int j=0;j<100000;j++) {
>>>               Container c = new Container()
>>>               c.run()
>>>           }
>>>       }
>>>       println "\ndone"
>>>
>>> public class Container implements Runnable {
>>>     public Container() {}
>>>     public void run() {
>>>       GroovyShell gs = new GroovyShell()
>>>       Script script = gs.parse("")
>>>       script.run()
>>>     }
>>> }
>> What happens is that gs.parse will create a new script and a new class
>> every time. Now using our custom call site code this works fine. Using
>> the indy port, it fails with a permgen error on any jdk7 before u40. On
>> u40 this works fine again. In jdk8 this fails sometimes with a metaspace
>> error, while in u40 it seems to work quite reliable.
>>
>> The problem must be more than just creating many classes, because our
>> custom callsite caching creates just as many classes for the scripts as
>> the indy version does. What does not happen so much there though is code
>> generated by reflection and of course non from indy. So I especially
>> suspect the code cache here to be responsible for the problem, but I
>> have no real basis for this. I lack the means to diagnose the problem
>> further
>>
>> Is there a way to make this work on older jdk7 vms? And is there a way
>> for me to make this work on jdk8? Do others here have similar experiences?
>>
>> bye Jochen
>
> _______________________________________________
> mlvm-dev mailing list
> mlvm-dev@openjdk.java.net
> http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev
>


-- 
Jochen "blackdrag" Theodorou - Groovy Project Tech Lead
blog: http://blackdragsview.blogspot.com/
german groovy discussion newsgroup: de.comp.lang.misc
For Groovy programming sources visit http://groovy-lang.org

_______________________________________________
mlvm-dev mailing list
mlvm-dev@openjdk.java.net
http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev

Reply via email to