Hi,

This is a know issue for some Windows environments. A workaround is to set tarmk.mode=32 in the configuration of the SegmentNodeStoreService. See also the "Tar storage" section at https://helpx.adobe.com/experience-manager/kb/performance-tuning-tips.html.

Michael

https://helpx.adobe.com/experience-manager/kb/performance-tuning-tips.html

On 13.09.17 14:27, Yegor Kozlov wrote:
Hi

Every time Segment Store GC runs I get a bunch of these exceptions:

04.09.2017 07:41:53.157 *WARN* [TarMK filer reaper
[C:\Users\yegor\aem\segmentstore]]
org.apache.jackrabbit.oak.segment.file.FileReaper Unable to remove file
C:\Users\yegor\aem\segmentstore\data00163a.tar
java.nio.file.FileSystemException:
E:\Inetpub\adobe\aem\authorrepository\repository\segmentstore\data00163a.tar:
The process cannot access the file because it is being used by another
process.
                at
sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:86)
                at
sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:97)
                at
sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:102)
                at
sun.nio.fs.WindowsFileSystemProvider.implDelete(WindowsFileSystemProvider.java:269)
                at
sun.nio.fs.AbstractFileSystemProvider.deleteIfExists(AbstractFileSystemProvider.java:108)
                at java.nio.file.Files.deleteIfExists(Files.java:1165)
                at
org.apache.jackrabbit.oak.segment.file.FileReaper.reap(FileReaper.java:73)
                at
org.apache.jackrabbit.oak.segment.file.FileStore$3.run(FileStore.java:245)
                at
org.apache.jackrabbit.oak.segment.file.SafeRunnable.run(SafeRunnable.java:67)
                at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
...


I'm running Oak 1.6.2 from AEM 6.3 SP1 on 64-bit Windows 7. The TarMK mode
is 64 which defaults from the 'sun.arch.data.model' system property.
The problem is reproducible on Windows Server 2012 as well.

It smells like I'm hitting OAK-4274. I perfectly understand it is a JDK
issue and it cannot be fixed from the Oak code. My point is that
SegmentNodeStoreService picks up a wrong TarMK mode on Windows. In the
current implementation the default value is taken from the
'sun.arch.data.model' system property which is always 64 on 64-bit
platforms. IMO it should always default to 32 on Windows and use
'sun.arch.data.model' on other operating systems.


Regards,
Yegor

Reply via email to