Nikita Amelchev created IGNITE-18463:
----------------------------------------

             Summary: Unable to cancel a snapshot if one snapshot path is 
configured for several nodes
                 Key: IGNITE-18463
                 URL: https://issues.apache.org/jira/browse/IGNITE-18463
             Project: Ignite
          Issue Type: Bug
            Reporter: Nikita Amelchev
            Assignee: Nikita Amelchev


Reproducer: testClusterSnapshotInProgressCancelled with multiple server nodes.

IgniteUtils.delete() fails due to concurrent files delete:

{noformat}
[2022-12-27T11:09:51,559][ERROR][mgmt-#423%snapshot.IgniteClusterSnapshotSelfTest1%][AbstractSnapshotFutureTask]
 SnapshotFutureTask cancellation failed
 java.util.concurrent.ExecutionException: 
java.nio.file.DirectoryIteratorException: java.nio.file.NoSuchFileException: 
/Users/sbt-amelchev-ns-mobile/work/ignite-public/work/snapshots/testSnapshot/db/binary_meta/snapshot_IgniteClusterSnapshotSelfTest1
        at 
java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:357) 
~[?:1.8.0_352]
        at 
java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1908) 
~[?:1.8.0_352]
        at 
org.apache.ignite.internal.processors.cache.persistence.snapshot.SnapshotFutureTask.cancel(SnapshotFutureTask.java:659)
 ~[classes/:?]
        at 
org.apache.ignite.internal.processors.cache.persistence.snapshot.IgniteSnapshotManager.cancelLocalSnapshotTask0(IgniteSnapshotManager.java:1330)
 ~[classes/:?]
        at 
org.apache.ignite.internal.processors.cache.persistence.snapshot.IgniteSnapshotManager.cancelLocalSnapshotTask(IgniteSnapshotManager.java:1314)
 ~[classes/:?]
        at 
org.apache.ignite.internal.processors.cache.persistence.snapshot.IgniteSnapshotManager$CancelSnapshotCallable.call(IgniteSnapshotManager.java:3809)
 ~[classes/:?]
        at 
org.apache.ignite.internal.processors.cache.persistence.snapshot.IgniteSnapshotManager$CancelSnapshotCallable.call(IgniteSnapshotManager.java:3780)
 ~[classes/:?]
        at 
org.apache.ignite.internal.processors.closure.GridClosureProcessor$C2.execute(GridClosureProcessor.java:1849)
 ~[classes/:?]
        at 
org.apache.ignite.internal.processors.job.GridJobWorker$1.call(GridJobWorker.java:628)
 ~[classes/:?]
        at 
org.apache.ignite.internal.util.IgniteUtils.wrapThreadLoader(IgniteUtils.java:7381)
 ~[classes/:?]
        at 
org.apache.ignite.internal.processors.job.GridJobWorker.execute0(GridJobWorker.java:622)
 ~[classes/:?]
        at 
org.apache.ignite.internal.processors.job.GridJobWorker.body(GridJobWorker.java:547)
 ~[classes/:?]
        at 
org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:125) 
~[classes/:?]
        at 
org.apache.ignite.internal.processors.job.GridJobProcessor.processJobExecuteRequest(GridJobProcessor.java:1366)
 ~[classes/:?]
        at 
org.apache.ignite.internal.processors.job.GridJobProcessor$JobExecutionListener.onMessage(GridJobProcessor.java:2222)
 ~[classes/:?]
        at 
org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1907)
 ~[classes/:?]
        at 
org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:1528)
 ~[classes/:?]
        at 
org.apache.ignite.internal.managers.communication.GridIoManager.access$5300(GridIoManager.java:243)
 ~[classes/:?]
        at 
org.apache.ignite.internal.managers.communication.GridIoManager$9.execute(GridIoManager.java:1421)
 ~[classes/:?]
        at 
org.apache.ignite.internal.managers.communication.TraceRunnable.run(TraceRunnable.java:55)
 ~[classes/:?]
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 
~[?:1.8.0_352]
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 
~[?:1.8.0_352]
        at java.lang.Thread.run(Thread.java:750) ~[?:1.8.0_352]
Caused by: java.nio.file.DirectoryIteratorException: 
java.nio.file.NoSuchFileException: 
/Users/sbt-amelchev-ns-mobile/work/ignite-public/work/snapshots/testSnapshot/db/binary_meta/snapshot_IgniteClusterSnapshotSelfTest1
        at 
sun.nio.fs.UnixDirectoryStream$UnixDirectoryIterator.readNextEntry(UnixDirectoryStream.java:172)
 ~[?:1.8.0_352]
        at 
sun.nio.fs.UnixDirectoryStream$UnixDirectoryIterator.hasNext(UnixDirectoryStream.java:201)
 ~[?:1.8.0_352]
        at 
org.apache.ignite.internal.util.IgniteUtils.delete(IgniteUtils.java:3769) 
~[classes/:?]
        at 
org.apache.ignite.internal.util.IgniteUtils.delete(IgniteUtils.java:3745) 
~[classes/:?]
        at 
org.apache.ignite.internal.processors.cache.persistence.snapshot.IgniteSnapshotManager.deleteSnapshot(IgniteSnapshotManager.java:673)
 ~[classes/:?]
        at 
org.apache.ignite.internal.processors.cache.persistence.snapshot.IgniteSnapshotManager$LocalSnapshotSender.close0(IgniteSnapshotManager.java:3459)
 ~[classes/:?]
        at 
org.apache.ignite.internal.processors.cache.persistence.snapshot.SnapshotSender.close(SnapshotSender.java:176)
 ~[classes/:?]
        at 
org.apache.ignite.internal.processors.cache.persistence.snapshot.SnapshotFutureTask.onDone(SnapshotFutureTask.java:227)
 ~[classes/:?]
        at 
org.apache.ignite.internal.processors.cache.persistence.snapshot.SnapshotFutureTask.lambda$closeAsync$12(SnapshotFutureTask.java:637)
 ~[classes/:?]
        at 
java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1640)
 ~[?:1.8.0_352]
        ... 3 more
Caused by: java.nio.file.NoSuchFileException: 
/Users/sbt-amelchev-ns-mobile/work/ignite-public/work/snapshots/testSnapshot/db/binary_meta/snapshot_IgniteClusterSnapshotSelfTest1
        at 
sun.nio.fs.UnixException.translateToIOException(UnixException.java:86) 
~[?:1.8.0_352]
        at sun.nio.fs.UnixException.asIOException(UnixException.java:111) 
~[?:1.8.0_352]
        at 
sun.nio.fs.UnixDirectoryStream$UnixDirectoryIterator.readNextEntry(UnixDirectoryStream.java:171)
 ~[?:1.8.0_352]
        at 
sun.nio.fs.UnixDirectoryStream$UnixDirectoryIterator.hasNext(UnixDirectoryStream.java:201)
 ~[?:1.8.0_352]
        at 
org.apache.ignite.internal.util.IgniteUtils.delete(IgniteUtils.java:3769) 
~[classes/:?]
        at 
org.apache.ignite.internal.util.IgniteUtils.delete(IgniteUtils.java:3745) 
~[classes/:?]
        at 
org.apache.ignite.internal.processors.cache.persistence.snapshot.IgniteSnapshotManager.deleteSnapshot(IgniteSnapshotManager.java:673)
 ~[classes/:?]
        at 
org.apache.ignite.internal.processors.cache.persistence.snapshot.IgniteSnapshotManager$LocalSnapshotSender.close0(IgniteSnapshotManager.java:3459)
 ~[classes/:?]
        at 
org.apache.ignite.internal.processors.cache.persistence.snapshot.SnapshotSender.close(SnapshotSender.java:176)
 ~[classes/:?]
        at 
org.apache.ignite.internal.processors.cache.persistence.snapshot.SnapshotFutureTask.onDone(SnapshotFutureTask.java:227)
 ~[classes/:?]
        at 
org.apache.ignite.internal.processors.cache.persistence.snapshot.SnapshotFutureTask.lambda$closeAsync$12(SnapshotFutureTask.java:637)
 ~[classes/:?]
        at 
java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1640)
 ~[?:1.8.0_352]
        ... 3 more
{noformat}




--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to