RFR: JDK-8320383: refresh libraries cache on AIX in VMError::report [v3]

Thomas Stuefe stuefe at openjdk.org
Tue Nov 28 14:34:55 UTC 2023


On Thu, 23 Nov 2023 14:46:28 GMT, Matthias Baesken <mbaesken at openjdk.org> wrote:

>> VMError::report outputs information about loaded shared libraries; but this info could be outdated on AIX because the libraries cache is currently not refreshed before printing.
>> This is similar to [JDK-8318587](https://bugs.openjdk.org/browse/JDK-8318587) .
>> The refresh in VMError::report could be omitted in some situations where the refresh call is considered problematic.
>
> Matthias Baesken has updated the pull request incrementally with one additional commit since the last revision:
> 
>   use new method also in print_vm_info

>>> @Stuefe this is the opposite to what you suggested for the AIX specific changes for static library loading. It was proposed there to implement an os abstraction and you rightly said no because it was an AIX only issue. I don't see this is any different.

> > The reason I proposed this is that on Windows, we have code paths that are executed on demand on symbol decoding. Its exactly the same thing as on AIX: we need to refresh the loaded pdb list. This would fit well into this abstraction.
> 
> But the Windows implementation of this abstraction is also empty! Is there some follow up to actually put this new abstraction into actual use? My recollection is that the Windows refresh worked fine in the Windows code.

I think we have done everything possible. I don't know what would have been the correct way.

Because we did not like the AIX ifdefs in shared code, Matthias replaced them with a reasonable os abstraction. The critique then was that this abstraction only exists for AIX. We then showed that this abstraction can be filled in other platforms too. 

Note that back in the day we carried a lot of Solaris-specific coding hiding behind abstractions that only ever were implemented on Solaris. We do this still today for Windows (e.g. the os::vm_allocation_granularity() <-> os::vm_page_size() duality only exists because of Windows). That seemed to have been no problem. Why is it a problem when we do the same for AIX?

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

PR Comment: https://git.openjdk.org/jdk/pull/16730#issuecomment-1829958678


More information about the hotspot-dev mailing list