(XS) RFR: 8146222: assert(_initialized) failed: TLS not initialized yet!
serguei.spitsyn at oracle.com
serguei.spitsyn at oracle.com
Tue Jan 12 22:25:44 UTC 2016
David,
It looks good.
Thanks,
Serguei
On 1/8/16 06:47, Daniel D. Daugherty wrote:
> On 1/7/16 9:01 PM, David Holmes wrote:
>> Bug: https://bugs.openjdk.java.net/browse/JDK-8146222
>>
>> webrev: http://cr.openjdk.java.net/~dholmes/8146222/webrev/
>
> src/share/vm/runtime/thread.cpp
> No comments.
>
> Thumbs up.
>
> Dan
>
>
>>
>> JDK-8144947 showed an error path, on Windows, where we can call
>> Thread::current_or_null before TLS has been initialized and so hit
>> the assertion failure - see bug report for details.
>>
>> Simple fix is to move the ThreadLocalStorage::init() prior to any
>> argument parsing code. As it contains simple OS library calls it can
>> be initialized very early. Even the asserts in it still work
>> (somewhat surprisingly) after the move.
>>
>> Failure mode of
>> com/sun/management/HotSpotDiagnosticMXBean/CheckOrigin.java before
>> the fix:
>>
>> Agent[1].stdout: ## nof_mallocs = 674, nof_frees = 38
>> Agent[1].stdout: ## memory stomp:
>> Agent[1].stdout: GuardedMemory(0x0000000000fbf690)
>> base_addr=0x0000000000fbf3f0 tag=0x00000000000da360
>> user_size=16512112 user_data=0x0000000000fbf410
>> Agent[1].stdout: Header guard @0x0000000000fbf3f0 is BROKEN
>> Agent[1].stdout: # To suppress the following error report, specify
>> this argument
>> Agent[1].stdout: # after -XX: or in .hotspotrc:
>> SuppressErrorAt=\threadLocalStorage_windows.cpp:52
>> Agent[1].stdout: #
>> Agent[1].stdout: # A fatal error has been detected by the Java
>> Runtime Environment:
>> Agent[1].stdout: #
>> Agent[1].stdout: # Internal Error
>> (C:\jprt\T\P1\020042.daholme\s\hotspot\src\os\windows\vm\threadLocalStorage_windows.cpp:52),
>> pid=5076, tid=4348
>> Agent[1].stdout: # assert(_initialized) failed: TLS not initialized yet!
>>
>> Failure mode after:
>>
>> Agent[1].stdout: ## nof_mallocs = 601, nof_frees = 36
>> Agent[1].stdout: ## memory stomp:
>> Agent[1].stdout: GuardedMemory(0x00f1fc44) base_addr=0x00f1fb40
>> tag=0x003a9bc0 user_size=1942466404 user_data=0x00f1fb58
>> Agent[1].stdout: Header guard @0x00f1fb40 is BROKEN
>> Agent[1].stdout: #
>> Agent[1].stdout: # A fatal error has been detected by the Java
>> Runtime Environment:
>> Agent[1].stdout: #
>> Agent[1].stdout: # EXCEPTION_ACCESS_VIOLATION (0xc0000005) at
>> pc=0x73bb8ab6, pid=10328, tid=7672
>>
>> Testing:
>> - JPRT
>> - com/sun/management/HotSpotDiagnosticMXBean/CheckOrigin.java
>> - testing that the asserts in the relocated init() method fire
>> correctly
>>
>> Thanks,
>> David
>
More information about the hotspot-runtime-dev
mailing list