On Tue, 20 Oct 2026 00:37:32 GMT, Yasumasa Suenaga <[email protected]> wrote:

>> Alpine Linux would not provide `.eh_frame` enough to unwind in both regular 
>> binary and debuginfo. We need to refer `.debug_frame` in debuginfo for 
>> unwinding.
>> 
>> This ticket also re-enable mixed jstack jtreg tests on Alpine if musl-c 
>> debuginfo is available because `.debug_frame` would be provided by musl-dbg 
>> package.
>> This change passed all of serviceability/sa jtreg tests on following 
>> environment:
>> 
>> - Fedora 44 x86_64
>> - Alpine Linux 3.23 (with musl-dbg) x86_64
>> - Rocky Linux 9.5 aarch64
>> 
>> ---------
>> - [x] I confirm that I make this contribution in accordance with the 
>> [OpenJDK Interim AI Policy](https://openjdk.org/legal/ai).
>
> Yasumasa Suenaga has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   Update src/jdk.hotspot.agent/linux/native/libsaproc/dwarf.cpp
>   
>   Co-authored-by: Chris Plummer <[email protected]>

src/jdk.hotspot.agent/linux/native/libsaproc/libproc_impl.c line 139:

> 137:         destroy_symtab(lib->symtab);
> 138:      }
> 139:      close(lib->fd);

`core_release()` already closes these fds through `close_files()`, before 
`Prelease()` calls `destroy_lib_info()`. This closes them twice in core mode 
and could close an unrelated fd reused by another thread.

Could we move this close to `process_cleanup()` instead? I checked the 
core-file case with strace and confirmed the duplicate close() calls. Moving 
the close to process_cleanup() fixed this.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/33375#discussion_r4332968151

Reply via email to