[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openjdk-serviceability-dev
Subject:    Re: RFR: 8294370: Fix allocation bug in java_lang_Thread::async_get_stack_trace() [v2]
From:       Patricio Chilano Mateo <pchilanomate () openjdk ! org>
Date:       2022-09-28 14:46:33
Message-ID: RtRljVsJWRjLKz3nHnElYneKgNxHU_GNdosOGsWnveo=.950e83c5-0c48-4c09-bd0f-6914f9475d03 () github ! com
[Download RAW message or body]

On Wed, 28 Sep 2022 14:43:43 GMT, Patricio Chilano Mateo <pchilanomate@openjdk.org> \
wrote:

> > Please review this small fix in async_get_stack_trace(). The GrowableArrays \
> > created to store the bci and Method* of each frame found while traversing the \
> > stack are allocated in the resource area of the thread that calls \
> > async_get_stack_trace(). But if the handshake is executed by the target and if \
> > the number of frames in the stack exceeds the initial size of the GrowableArrays \
> > then we will hit an assertion when trying to grow the size of the arrays (see bug \
> > description). Currently we don't see any issues because the initial size of the \
> > GrowableArrays is 512 and our tests don't test beyond that (the maximum value of \
> > DEPTH in the vmTestbase/nsk/stress/strace/ tests is 500). The issue can be easily \
> > reproduced by either decreasing the initial size of the GrowableArrays or by \
> > increasing the value of DEPTH in those strace tests. To fix it I allocated the \
> > arrays in the C heap instead. Also I lowered the initial size of the arrays since \
> > 512 seemed too much to start with. Tested it by running all tests in the \
> > vmTestbase/nsk/stress/strace/ directory. 
> > Thanks,
> > Patricio
> 
> Patricio Chilano Mateo has updated the pull request incrementally with one \
> additional commit since the last revision: 
> Improve comment

Thanks for the reviews David and Serguei!

-------------

PR: https://git.openjdk.org/jdk/pull/10424


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic