RFR(xxxs): 8193429: "assert(false) failed: GetModuleFileName failed (126)" in symbolengine.cpp

Thomas Stüfe thomas.stuefe at gmail.com
Tue Mar 6 15:08:19 UTC 2018


Hi George,



On Tue, Mar 6, 2018 at 4:03 PM, George Triantafillou <
george.triantafillou at oracle.com> wrote:

> Hi Thomas,
>
> This looks good.  The failure is very difficult to reproduce locally, and
> I agree that the assert was too strict.
>
>
Yes, sorry for that...


> If you'd like, I can sponsor this change for you.


Great, thanks! I fixed this in 11 (based on jdk/hs) but I think the patch
should cleanly apply to 10 too, there were no significant changes to the
code.

..Thomas

>
>
> -George
>
>
> On 3/6/2018 3:30 AM, Thomas Stüfe wrote:
>
>> Hi all,
>>
>> please take a look at this small fix.
>>
>> fix:
>> http://cr.openjdk.java.net/~stuefe/webrevs/8193429-GetModule
>> FileName-failed-symbolengine/webrev.00/webrev/
>>
>> bug: https://bugs.openjdk.java.net/browse/JDK-8193429
>>
>> Basically, the assert is too strict. We retrieve a list of loaded modules
>> (EnumProcessModules) and then attempt to retrieve their file names
>> (GetModuleFileName). On the latter we get an invalid handle error.
>>
>> Since both operations together are not atomic, it may happen that the
>> module got unloaded when the file name is retrieved. So, the assert is too
>> strict and should be removed.
>>
>> (Note: I did my fix for 11, should that
>>
>> Best Regards, Thomas
>>
>
>


More information about the hotspot-runtime-dev mailing list