RFR(S) 8216184: CDS/appCDS tests failed on Windows due to long path to a classlist file

David Holmes david.holmes at oracle.com
Fri Jan 11 01:42:48 UTC 2019


On 11/01/2019 11:23 am, Ioi Lam wrote:
> Hi Calvin,
> 
> Maybe you can use os::fopen() instead of 2 calls to overloaded versions 
> of os::open()?

os::fopen still calls ::fopen so will have the exact same problem on 
Windows. os::fopen only exists to add close-on-exec behaviour.

There are numerous uses of plain fopen in shared code in the VM, many of 
which may also be problematic.

In relation to CDS, this comment in

./share/memory/metaspaceShared.cpp

seems out-of-place and likely no longer relevant, as I see no fopern use 
there

     // Preload classes to be shared.
     // Should use some os:: method rather than fopen() here. aB.

Otherwise looks good to me.

Thanks,
David
-----

> The rest looks good.
> 
> Thanks
> 
> - Ioi
> 
> On 1/10/19 12:08 PM, Calvin Cheung wrote:
>> bug: https://bugs.openjdk.java.net/browse/JDK-8216184
>>
>> webrev: http://cr.openjdk.java.net/~ccheung/8216184/webrev.00/
>>
>> We are using fopen() to open a classlist file. fopen() can't handle 
>> long path name longer than MAX_PATH.
>>
>> A fix is to use os::open() which is capable of handling long path name 
>> after the fix for JDK-8188122.
>>
>> Testing: mach5 hs-tier{1,2,3}.
>>
>> thanks,
>> Calvin


More information about the hotspot-runtime-dev mailing list