On Mon, 26 Sep 2022 14:23:38 GMT, Patricio Chilano Mateo <pchilanom...@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 This pull request has now been integrated. Changeset: 5d48da45 Author: Patricio Chilano Mateo <pchilanom...@openjdk.org> URL: https://git.openjdk.org/jdk/commit/5d48da4574f6aacb0db445dd5750566330aa383d Stats: 11 lines in 1 file changed: 6 ins; 0 del; 5 mod 8294370: Fix allocation bug in java_lang_Thread::async_get_stack_trace() Reviewed-by: dholmes, sspitsyn ------------- PR: https://git.openjdk.org/jdk/pull/10424