On Sun, 12 Feb 2023 09:34:37 GMT, Alan Bateman <al...@openjdk.org> wrote:
>>> It seems a bit fragile to be parsing the output of `fsutil volume diskFree` >>> as the output seems to vary by Windows releases and maybe configuration. So >>> minimally, I think it should be changed to use ProcessTools so that the >>> command and the output show up in the .jtr file. >>> >>> In passing, you might want to choose a different method name to make it >>> clearer what it does, maybe volumeDiskFree? >> >> Another possibility would be to add a native method to the test itself to >> invoke >> [GetDiskSpaceInformationW](https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-getdiskspaceinformationw) >> to obtain the value of `CallerTotalAllocationUnits` (in bytes) from the >> [DISK_SPACE_INFORMATION](https://learn.microsoft.com/en-us/windows/win32/api/fileapi/ns-fileapi-disk_space_information) >> structure. > >> Another possibility would be to add a native method to the test itself to >> invoke >> [GetDiskSpaceInformationW](https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-getdiskspaceinformationw) >> to obtain the value of `CallerTotalAllocationUnits` (in bytes) from the >> [DISK_SPACE_INFORMATION](https://learn.microsoft.com/en-us/windows/win32/api/fileapi/ns-fileapi-disk_space_information) >> structure. > > That would be more reliable than parsing the output of `fsutil volume` so > worth trying. You might have to dig into which of these win32 works with > quotas as that seems to be part of the issue. The JDK uses > GetDiskFreeSpaceExW. Also this test might have to do a few iterations so that > it captures free space info while the system is in quiescence - I suspect > some of the reliability issues has been concurrent activity that changes the > volume space usage significantly while this test is running. There has definitely been a problem with quotas on Windows. I set up quotas on actual Windows 11 hardware and replicated the same failure. I am not sure how much lack of system quiescence is to blame, but there would be no harm in building in some robustness for lack of quiescence while we're at it. ------------- PR: https://git.openjdk.org/jdk/pull/12397