Francesco Mari created OAK-5044:
-----------------------------------

             Summary: The background flush operation might flush a closed store
                 Key: OAK-5044
                 URL: https://issues.apache.org/jira/browse/OAK-5044
             Project: Jackrabbit Oak
          Issue Type: Bug
          Components: segment-tar
            Reporter: Francesco Mari
            Assignee: Francesco Mari
             Fix For: 1.6


The background flush operation might invoke flush after the TAR writer (and the 
store in general) is either closed or in the process of being closed. This is 
an example execution.

{noformat}
27.10.2016 23:42:32.533 WARN   o.a.j.o.s.f.Scheduler: The scheduler FileStore 
background tasks takes too long to shutdown
27.10.2016 23:43:22.574 WARN   o.a.j.o.s.f.FileStore: Failed to flush the TarMK 
at crx-quickstart/repository/segmentstore
java.io.IOException: Stream Closed
        at java.io.RandomAccessFile.writeBytes0(Native Method) ~[na:1.7.0_75]
        at java.io.RandomAccessFile.writeBytes(RandomAccessFile.java:520) 
~[na:1.7.0_75]
        at java.io.RandomAccessFile.writeBytes(RandomAccessFile.java:1123) 
~[na:1.7.0_75]
        at 
org.apache.jackrabbit.oak.segment.file.TarRevisions.flush(TarRevisions.java:209)
 ~[crx2oak-1.5.6-all-in-one.jar:1.5.6]
        at 
org.apache.jackrabbit.oak.segment.file.FileStore.flush(FileStore.java:365) 
~[crx2oak-1.5.6-all-in-one.jar:1.5.6]
        at 
org.apache.jackrabbit.oak.segment.file.FileStore$2.run(FileStore.java:207) 
~[crx2oak-1.5.6-all-in-one.jar:1.5.6]
        at 
org.apache.jackrabbit.oak.segment.file.SafeRunnable.run(SafeRunnable.java:67) 
[crx2oak-1.5.6-all-in-one.jar:1.5.6]
        at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) 
[na:1.7.0_75]
        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:304) 
[na:1.7.0_75]
        at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178)
 [na:1.7.0_75]
        at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
 [na:1.7.0_75]
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
[na:1.7.0_75]
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
[na:1.7.0_75]
        at java.lang.Thread.run(Thread.java:745) [na:1.7.0_75]
27.10.2016 23:43:23.988 INFO   o.a.j.o.s.f.FileStore: TarMK closed: 
crx-quickstart/repository/segmentstore
27.10.2016 23:43:24.262 INFO   o.a.j.o.p.s.f.FileStore: TarMK closed: 
crx-quickstart/repository-old/segmentstore
{noformat}

Flushing the store should not executing any significant operation on the 
underlying file system objects when the store is closed, even if it's not 
possible to shut down the scheduler in a timely fashion.



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

Reply via email to