If you have a Windows Server shared folder set to storage, you may get the following error on rare occasions when accessing storage:
java.io.IOException: There are no more files.
In English, the error message is "There are no more files" as above.
In particular, it has been found that error occurs more frequently when a large amount of storage is accessed, such as during Resin startup.
It has also been reported to occur during normal storage access.
Related FAQ
https://global.intra-mart.support/hc/en-us/articles/360058184293
(This FAQ is for Resin startup only.)
[Causes]
This is because when the OS(Windows Server) returns " ERROR_NO_MORE_FILES " error ID, it is process as an exception in the JDK.
This may be due to the following bug in the JDK:
https://bugs.openjdk.java.net/browse/JDK-8234363 (English)
As of June 2023, we do not know the root cause of this error, as it is an OS issue.
However, after further investigation, we found information from the following Microsoft site that may be related to this phenomenon.
https://learn.microsoft.com/ja-jp/windows-server/administration/performance-tuning/role/file-server/
We have confirmed that the phenomenon is mitigated when the settings are changed as follows among various settings.
HKLM/System/CurrentControlSet/Services/LanmanWorkstation/Parameters/DirectoryCacheLifetime
Set DirectoryCacheLifetime to 0
Since the root cause is not known, there are some concerns:
・There has been no confirmation of 100% control.
・Storage operations may be delayed because of Windows Server shared folder caching settings.
The above settings are Windows Registry changes. We ask that you perform thorough verification of the settings on your own responsibility.
[Reference]
This occurs when you use a Windows Server shared folder. This does not occur in a Linux environment.
[Handling Method]
When storage access fails due to the above JDK issues, retry to avoid this.
You can set the number of retries with the following system property. (The default is 3 times.)
jp.co.intra_mart.system.service.client.file.StorageUtil.retry_count
Example) -Djp.co.intra_mart.system.service.client.file.StorageUtil.retry_count=5
*Compatible by meeting the following requirements of "2023 Autumn".
https://issue.intra-mart.jp/issues/35789
This method is effective even if it is caused by the OS.
-- Target -------------------------------------------------------------------------
iAP/Accel Platform/2023 Spring or earlier
---------------------------------------------------------------------------------
FAQID:1278
Error " java.io.IOException: There are no more files" occurs.
