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