RFR(S): 8205946: JVM crash after call to ClassLoader::setup_bootstrap_search_path()
Calvin Cheung
calvin.cheung at oracle.com
Tue Jul 10 17:31:14 UTC 2018
Updated webrev with the changes mentioned below:
http://cr.openjdk.java.net/~ccheung/8205946/webrev.01/
I've rerun hs-tier{1,2,3} tests.
thanks,
Calvin
On 7/9/18, 1:43 PM, Calvin Cheung wrote:
> Hi Lois,
>
> Thanks for your review.
>
> On 7/9/18, 11:58 AM, Lois Foltan wrote:
>> On 7/9/2018 1:29 PM, Calvin Cheung wrote:
>>
>>> bug: https://bugs.openjdk.java.net/browse/JDK-8205946
>>>
>>> webrev: http://cr.openjdk.java.net/~ccheung/8205946/webrev.00/
>>>
>>> The JVM crash could be simulated by renaming/removing the modules
>>> file under the jdk/lib directory.
>>> The proposed simple fix is to perform a
>>> vm_exit_during_initialization().
>>
>> Hi Calvin,
>>
>> Some clarifying questions. Is this just an issue for exploded builds?
> I don't think so. As mentioned above, I could reproduce the crash with
> a regular jdk image build by renaming the modules file under the
> jdk/lib directory.
>> I would prefer the exit to occur if the os::stat() fails for the
>> system class path in os::set_boot_path().
> Instead of exiting in os::set_boot_path(), how about checking the
> return status of os::set_boot_path() in the caller and exiting there
> like the following:
> bash-4.2$ hg diff os_linux.cpp
> diff --git a/src/hotspot/os/linux/os_linux.cpp
> b/src/hotspot/os/linux/os_linux.cpp
> --- a/src/hotspot/os/linux/os_linux.cpp
> +++ b/src/hotspot/os/linux/os_linux.cpp
> @@ -367,7 +367,9 @@
> }
> }
> Arguments::set_java_home(buf);
> - set_boot_path('/', ':');
> + if (!set_boot_path('/', ':')) {
> + vm_exit_during_initialization("Failed setting boot class
> path.", NULL);
> + }
> }
>
> Note that before the above change, the return status of
> set_boot_path() isn't checked.
> The above would involve changing 5 of those os_*.cpp files, one for
> each O/S.
>
>> With certainly an added assert later in
>> ClassLoader::setup_bootstrap_search_path() to ensure that the system
>> class path is never NULL.
> Sure, I can add an assert there.
> I'll post updated webrev once I've made the change and done testing.
>
> thanks,
> Calvin
>>
>> Thanks,
>> Lois
>>
>>>
>>> Ran hs-tier{1,2,3} tests successfully including the new test case.
>>>
>>> thanks,
>>> Calvin
>>
More information about the hotspot-runtime-dev
mailing list