S RFR: 8010783: assert(s->refcount() !=0) failed

Daniel D. Daugherty daniel.daugherty at oracle.com
Wed May 1 12:42:45 PDT 2013


On 5/1/13 1:26 PM, Karen Kinnear wrote:
> Please review for lambda:
>
> http://cr.openjdk.java.net/~acorn/8010783/webrev/src/share/vm/classfile/bytecodeAssembler.cpp.sdiff.html

src/share/vm/classfile/bytecodeAssembler.cpp
     Swapping the order of the 'symbol_at_put()' and 'increment_refcount()'
     calls is simple enough. That should make this assert() happy:

     src/share/vm/oops/constantPool.hpp:
     308    void symbol_at_put(int which, Symbol* s) {
     309      assert(s->refcount() != 0, "should have nonzero refcount");

     by making sure the entry is marked as in-use before it is 'put'
     somewhere.

     However, Vladimir's comment and the stack trace in the bug report
     made me wonder if we were doing some default method processing on
     classes that didn't need it. Perhaps there are two issues here?

Thumbs up, if we don't have two bugs here.

Dan

>
> Passes test in bug report for fastdebug: java -XX:+CompileTheWorld -XX:+CompileTheWorldStartAt=12
> -Xbootclasspath/p:interclient-core.jar
>
> vm.quick.testlist, lang, vm jck's in progress on on linux-x64
>
> thanks,
> Karen


More information about the hotspot-runtime-dev mailing list