Hotspot segfaulting on Linux SPARC

David Holmes david.holmes at oracle.com
Thu Apr 12 09:31:27 UTC 2018


On 12/04/2018 6:43 PM, John Paul Adrian Glaubitz wrote:
> On 04/10/2018 11:45 PM, David Holmes wrote:
>>> diff -r 00805b129186 
>>> src/hotspot/os_cpu/linux_sparc/vm_version_linux_sparc.cpp
>>> --- a/src/hotspot/os_cpu/linux_sparc/vm_version_linux_sparc.cpp Tue 
>>> Apr 10 11:43:40 2018 -0700
>>> +++ b/src/hotspot/os_cpu/linux_sparc/vm_version_linux_sparc.cpp Tue 
>>> Apr 10 22:38:12 2018 +0300
>>> @@ -48,7 +48,7 @@
>>>           if (vstr != NULL) {
>>>             // We have a matching line and a valid starting point to 
>>> the value of
>>>             // the field, copy the string for keeps.
>>> -          _string = strdup(vstr);
>>> +          _string = os::strdup(vstr, mtInternal);
>>>             break;
>>>           }
>>>         }
> 
> I will get this change merged first. This definitely fixes one crash
> on linux-sparc.

I still think the safest fix is to change os::free to ::free, not 
::strdup to os::strdup. There are too many codepaths through the os:: 
code that lead to places where we expect to have an attached thread - 
even if they are error paths.

David
-----

>> The only reference to that message I can find is from HashMap/HashSet 
>> where the load factor defines how full the collection becomes before 
>> it resizes. I would have to guess some kind of floating-point issue 
>> here - a very small number rather than 0 perhaps?
> 
> Then try to track down this issue using hg bisect.
> 
> Adrian
> 


More information about the hotspot-dev mailing list