RFR (S) 8140685: Fix backtrace building to not rely on constant pool merging

George Triantafillou george.triantafillou at oracle.com
Mon Jan 23 23:53:59 UTC 2017


Hi Coleen,

src/share/vm/classfile/javaClasses.cpp, change line 1694 to:

// Note: this doesn't leak symbols because the mirror in the backtrace 
keeps the

-George

On 1/23/2017 6:00 PM, Coleen Phillimore wrote:
> Summary: Store Symbol* for the name in the backtrace
>
> There was some thought that storing a u2 for cpref would be more 
> memory efficient than storing Symbol* in the backtraces, but recent 
> runs of Jetty show that this doesn't cause footprint increases or 
> performance decreases.   Storing the Symbol* for the method name 
> guarantees it is there when creating the StackTraceElement, whereas 
> cpref relies on constant pool merging for redefinition and is 
> dependent on being an index in the right constant pool, which has been 
> a source of bugs in the past.
>
> dev-submit performance testing was run with no regressions.  Also, all 
> hotspot jtreg tests were run.
>
> This is a change for JDK10 whenever that opens.
>
> open webrev at http://cr.openjdk.java.net/~coleenp/8140685.01/webrev
> bug link https://bugs.openjdk.java.net/browse/JDK-8140685
>
> Thanks,
> Coleen



More information about the hotspot-runtime-dev mailing list