JDK-8259843: initialize dli_fname array before calling dll_address_to_library_name
Schmidt, Lutz
lutz.schmidt at sap.com
Wed Jan 20 13:40:03 UTC 2021
Hi David,
my comment was motivated by the "don't fail if you don't have to" principle. You will certainly agree, such principle is very helpful in productive environments. In this particular case, there is no need to fail - just don't print. On the other hand, if these checks describe a "cannot occur situation" - why then checking for it at all?
Anyway, life has gone on since I wrote my comment. Everybody else likes the path you (and Thomas) suggested. I will therefore mute myself. My LGTM statement remains valid.
Best Regards,
Lutz
On 20.01.21, 13:20, "David Holmes" <david.holmes at oracle.com> wrote:
On 20/01/2021 6:32 pm, Lutz Schmidt wrote:
> On Wed, 20 Jan 2021 08:21:36 GMT, Matthias Baesken <mbaesken at openjdk.org> wrote:
>
>>> src/hotspot/share/runtime/frame.cpp line 543:
>>>
>>>> 541: bool found;
>>>> 542:
>>>> 543: if (buf == NULL || buflen < 1) return;
>>>
>>> Can this not just be an assert: buf != NULL && buflen > 0 ?
>>
>> Hi David, I think a return would be clearer but an assert is "better than nothing" .
>>
>> Best regards, Matthias
>
> With an assert, you assume this is a "cannot occur error". You should be pretty sure to have good test coverage to find all "illegal invocations" before letting a release build escape into the wild.
The problem with a return is that it implies these conditions are
allowable and could reasonably happen, when in fact it would be an
internal programming error in the VM. Do we have test coverage for all
the code paths involved? Probably not. But the vast majority of
assertions in the VM do not have a "release" bail-out path. Keeping one
here is unnecessary and overkill IMO but I won't insist it be removed as
this is essentially error reporting code anyway.
David
> -------------
>
> PR: https://git.openjdk.java.net/jdk/pull/2144
>
More information about the hotspot-dev
mailing list