[ 
https://issues.apache.org/jira/browse/OAK-4236?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vikas Saurabh updated OAK-4236:
-------------------------------
    Attachment: unit-tests.log

Attaching [^unit-tests.log]. There are few observations:
* File store gets closed timely
* Delete fails even if I pause execution atTempFolder.delete

Making second SegmentNodeStore's as to have non-mmap access allows to clean up 
nicely. So, both the following diffs get the cleanup through:
{code}
         //which first wait for nodeStoreLatch and then on NodeStoreTracker lock
         createConfig([
                 
'org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStoreService': [
-                        cache: 200
+                        cache: 200,
+                        "tarmk.mode": 32
                 ]
         ])
{code}
OR
{code}
         //1. Get NodeStore created
         createConfig([
                 
'org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStoreService': [
-                        cache: 256
+                        cache: 256,
+                        "tarmk.mode": 32
                 ]
         ])
         getServiceWithWait(NodeStore.class)
....
....
         //which first wait for nodeStoreLatch and then on NodeStoreTracker lock
         createConfig([
                 
'org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStoreService': [
-                        cache: 200
+                        cache: 200,
+                        "tarmk.mode": 32
                 ]
         ])
{code}

BTW, have file access for first config and mmap access for second _doesn't_ 
work:
{code}
         //1. Get NodeStore created
         createConfig([
                 
'org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStoreService': [
-                        cache: 256
+                        cache: 256,
+                        "tarmk.mode": 32
                 ]
         ])
         getServiceWithWait(NodeStore.class)
{code}

That indicated that quite possibly the issues is with locked mmapped file 
access. I tried 2 System.gc() at the end of method to force clean-up of weak 
refs if any... but that didn't work as well
{code}
         assertNull("Deadlock detected", 
ManagementFactory.getThreadMXBean().findDeadlockedThreads())
         allWellLatch.await()
         tracker.close()
+
+        System.gc();
+        System.gc();
     }

     @Override
{code}

> SegmentNodeStoreConfigTest#testDeadlock in oak-pojosr leaves out tmp file
> -------------------------------------------------------------------------
>
>                 Key: OAK-4236
>                 URL: https://issues.apache.org/jira/browse/OAK-4236
>             Project: Jackrabbit Oak
>          Issue Type: Technical task
>            Reporter: Vikas Saurabh
>            Assignee: Chetan Mehrotra
>            Priority: Minor
>         Attachments: unit-tests.log
>
>
> Leftover temp folder contains {{repository/segmentstore/data00000a.tar}}...



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to