[
https://issues.apache.org/jira/browse/IGNITE-15450?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17481846#comment-17481846
]
Pavel Pereslegin edited comment on IGNITE-15450 at 2/17/22, 6:01 PM:
---------------------------------------------------------------------
The final solution is to add a "--sync" option to wait for the entire operation
to complete.
*Create*
{noformat}
Create cluster snapshot:
control.(sh|bat) --snapshot create snapshot_name [--sync]
Parameters:
snapshot_name - Snapshot name.
sync - Run the operation synchronously, the command will wait
for the entire operation to complete. Otherwise, it will be performed in the
background, and the command will immediately return control.
{noformat}
*Restore*
{noformat}
Restore snapshot:
control.(sh|bat) --snapshot restore snapshot_name --start [--groups
group1,...groupN] [--sync]
Parameters:
snapshot_name - Snapshot name.
group1,...groupN - Cache group names.
sync - Run the operation synchronously, the command will
wait for the entire operation to complete. Otherwise, it will be performed in
the background, and the command will immediately return control.
{noformat}
Example of an error output in the console if cache exists:
{noformat}
Command [SNAPSHOT] started
Arguments: --snapshot restore snapshot_02052020 --start --sync --yes
--------------------------------------------------------------------------------
Unable to restore cache group - directory is not empty. Cache group should be
destroyed manually before perform restore operation [group=test-cache,
dir=/home/xtern/src/java/ignite/source/work/db/gridCommandHandlerTest1/cache-test-cache]
Command [SNAPSHOT] finished with code: 4
Error stack trace:
class org.apache.ignite.IgniteException: Unable to restore cache group -
directory is not empty. Cache group should be destroyed manually before perform
restore operation [group=test-cache,
dir=/home/xtern/src/java/ignite/source/work/db/gridCommandHandlerTest1/cache-test-cache]
at
org.apache.ignite.internal.util.IgniteUtils.convertException(IgniteUtils.java:1114)
at
org.apache.ignite.internal.util.future.IgniteFutureImpl.convertException(IgniteFutureImpl.java:186)
at
org.apache.ignite.internal.util.future.IgniteFutureImpl.get(IgniteFutureImpl.java:155)
at
org.apache.ignite.internal.visor.snapshot.VisorSnapshotRestoreTask$VisorSnapshotStartRestoreJob.run(VisorSnapshotRestoreTask.java:70)
at
org.apache.ignite.internal.visor.snapshot.VisorSnapshotRestoreTask$VisorSnapshotStartRestoreJob.run(VisorSnapshotRestoreTask.java:52)
at org.apache.ignite.internal.visor.VisorJob.execute(VisorJob.java:69)
at
org.apache.ignite.internal.processors.job.GridJobWorker$2.call(GridJobWorker.java:620)
at
org.apache.ignite.internal.util.IgniteUtils.wrapThreadLoader(IgniteUtils.java:7334)
at
org.apache.ignite.internal.processors.job.GridJobWorker.execute0(GridJobWorker.java:614)
at
org.apache.ignite.internal.processors.job.GridJobWorker.body(GridJobWorker.java:539)
at
org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:125)
at
org.apache.ignite.internal.processors.job.GridJobProcessor.processJobExecuteRequest(GridJobProcessor.java:1343)
at
org.apache.ignite.internal.processors.task.GridTaskWorker.sendRequest(GridTaskWorker.java:1444)
at
org.apache.ignite.internal.processors.task.GridTaskWorker.processMappedJobs(GridTaskWorker.java:674)
at
org.apache.ignite.internal.processors.task.GridTaskWorker.body(GridTaskWorker.java:540)
at
org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:125)
at
org.apache.ignite.internal.processors.task.GridTaskProcessor.startTask(GridTaskProcessor.java:860)
at
org.apache.ignite.internal.processors.task.GridTaskProcessor.execute(GridTaskProcessor.java:590)
at
org.apache.ignite.internal.processors.task.GridTaskProcessor.execute(GridTaskProcessor.java:570)
at
org.apache.ignite.internal.processors.rest.handlers.task.GridTaskCommandHandler.handleAsyncUnsafe(GridTaskCommandHandler.java:223)
at
org.apache.ignite.internal.processors.rest.handlers.task.GridTaskCommandHandler.handleAsync(GridTaskCommandHandler.java:162)
at
org.apache.ignite.internal.processors.rest.GridRestProcessor.handleRequest0(GridRestProcessor.java:317)
at
org.apache.ignite.internal.processors.rest.GridRestProcessor.handleRequest(GridRestProcessor.java:303)
at
org.apache.ignite.internal.processors.rest.GridRestProcessor.access$000(GridRestProcessor.java:108)
at
org.apache.ignite.internal.processors.rest.GridRestProcessor$2.body(GridRestProcessor.java:189)
at
org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:125)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: class org.apache.ignite.IgniteCheckedException: Unable to restore
cache group - directory is not empty. Cache group should be destroyed manually
before perform restore operation [group=test-cache,
dir=/home/xtern/src/java/ignite/source/work/db/gridCommandHandlerTest1/cache-test-cache]
at
org.apache.ignite.internal.processors.cache.persistence.snapshot.SnapshotRestoreProcess.prepareContext(SnapshotRestoreProcess.java:683)
at
org.apache.ignite.internal.processors.cache.persistence.snapshot.SnapshotRestoreProcess.prepare(SnapshotRestoreProcess.java:586)
at
org.apache.ignite.internal.util.distributed.DistributedProcess.lambda$new$2(DistributedProcess.java:149)
at
org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$4.onDiscovery0(GridDiscoveryManager.java:772)
at
org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$4.access$7500(GridDiscoveryManager.java:559)
at
org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$4$NotificationTask.run(GridDiscoveryManager.java:994)
at
org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$DiscoveryMessageNotifierWorker.body0(GridDiscoveryManager.java:2852)
at
org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$DiscoveryMessageNotifierWorker.body(GridDiscoveryManager.java:2890)
at
org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:125)
... 1 more
Control utility has completed execution at: 2022-02-17T20:58:21.129
Execution time: 203 ms
{noformat}
was (Author: xtern):
The final solution is to add a "--sync" option to wait for the entire operation
to complete.
*Create*
{noformat}
Create cluster snapshot:
control.(sh|bat) --snapshot create snapshot_name [--sync]
Parameters:
snapshot_name - Snapshot name.
sync - Run the operation synchronously, the command will wait
for the entire operation to complete. Otherwise, it will be performed in the
background, and the command will immediately return control.
{noformat}
*Restore*
{noformat}
Restore snapshot:
control.(sh|bat) --snapshot restore snapshot_name --start [--groups
group1,...groupN] [--sync]
Parameters:
snapshot_name - Snapshot name.
group1,...groupN - Cache group names.
sync - Run the operation synchronously, the command will
wait for the entire operation to complete. Otherwise, it will be performed in
the background, and the command will immediately return control.
{noformat}
Example of error message if cache exists:
_class org.apache.ignite.IgniteException: Unable to restore cache group -
directory is not empty. Cache group should be destroyed manually before perform
restore operation [group=test-cache,
dir=/home/xtern/src/java/ignite/source/work/db/gridCommandHandlerTest0/cache-test-cache]]_
Full console output for this type of error:
{noformat}
Command [SNAPSHOT] started
Arguments: --snapshot restore snapshot_02052020 --start --sync --yes
--------------------------------------------------------------------------------
Failed to perform operation.
Failed to reduce job results due to undeclared user exception
[task=org.apache.ignite.internal.visor.snapshot.VisorSnapshotRestoreTask@1fd7cb69,
err=class org.apache.ignite.IgniteException: Unable to restore cache group -
directory is not empty. Cache group should be destroyed manually before perform
restore operation [group=test-cache,
dir=/home/xtern/src/java/ignite/source/work/db/gridCommandHandlerTest1/cache-test-cache]],
trace=class org.apache.ignite.IgniteCheckedException: Failed to reduce job
results due to undeclared user exception
[task=org.apache.ignite.internal.visor.snapshot.VisorSnapshotRestoreTask@1fd7cb69,
err=class org.apache.ignite.IgniteException: Unable to restore cache group -
directory is not empty. Cache group should be destroyed manually before perform
restore operation [group=test-cache,
dir=/home/xtern/src/java/ignite/source/work/db/gridCommandHandlerTest1/cache-test-cache]]
at
org.apache.ignite.internal.util.IgniteUtils.cast(IgniteUtils.java:7836)
at
org.apache.ignite.internal.util.future.GridFutureAdapter.resolve(GridFutureAdapter.java:260)
at
org.apache.ignite.internal.util.future.GridFutureAdapter.get0(GridFutureAdapter.java:172)
at
org.apache.ignite.internal.util.future.GridFutureAdapter.get(GridFutureAdapter.java:141)
at
org.apache.ignite.internal.processors.rest.handlers.task.GridTaskCommandHandler$2.apply(GridTaskCommandHandler.java:259)
at
org.apache.ignite.internal.processors.rest.handlers.task.GridTaskCommandHandler$2.apply(GridTaskCommandHandler.java:253)
at
org.apache.ignite.internal.util.future.GridFutureAdapter.notifyListener(GridFutureAdapter.java:399)
at
org.apache.ignite.internal.util.future.GridFutureAdapter.listen(GridFutureAdapter.java:354)
at
org.apache.ignite.internal.processors.rest.handlers.task.GridTaskCommandHandler.handleAsyncUnsafe(GridTaskCommandHandler.java:253)
at
org.apache.ignite.internal.processors.rest.handlers.task.GridTaskCommandHandler.handleAsync(GridTaskCommandHandler.java:162)
at
org.apache.ignite.internal.processors.rest.GridRestProcessor.handleRequest0(GridRestProcessor.java:317)
at
org.apache.ignite.internal.processors.rest.GridRestProcessor.handleRequest(GridRestProcessor.java:303)
at
org.apache.ignite.internal.processors.rest.GridRestProcessor.access$000(GridRestProcessor.java:108)
at
org.apache.ignite.internal.processors.rest.GridRestProcessor$2.body(GridRestProcessor.java:189)
at
org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:125)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: class org.apache.ignite.compute.ComputeUserUndeclaredException:
Failed to reduce job results due to undeclared user exception
[task=org.apache.ignite.internal.visor.snapshot.VisorSnapshotRestoreTask@1fd7cb69,
err=class org.apache.ignite.IgniteException: Unable to restore cache group -
directory is not empty. Cache group should be destroyed manually before perform
restore operation [group=test-cache,
dir=/home/xtern/src/java/ignite/source/work/db/gridCommandHandlerTest1/cache-test-cache]]
at
org.apache.ignite.internal.processors.task.GridTaskWorker.reduce(GridTaskWorker.java:1197)
at
org.apache.ignite.internal.processors.task.GridTaskWorker.onResponse(GridTaskWorker.java:985)
at
org.apache.ignite.internal.processors.task.GridTaskWorker.processDelayedResponses(GridTaskWorker.java:721)
at
org.apache.ignite.internal.processors.task.GridTaskWorker.body(GridTaskWorker.java:546)
at
org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:125)
at
org.apache.ignite.internal.processors.task.GridTaskProcessor.startTask(GridTaskProcessor.java:860)
at
org.apache.ignite.internal.processors.task.GridTaskProcessor.execute(GridTaskProcessor.java:590)
at
org.apache.ignite.internal.processors.task.GridTaskProcessor.execute(GridTaskProcessor.java:570)
at
org.apache.ignite.internal.processors.rest.handlers.task.GridTaskCommandHandler.handleAsyncUnsafe(GridTaskCommandHandler.java:223)
... 9 more
Caused by: class org.apache.ignite.IgniteException: Unable to restore cache
group - directory is not empty. Cache group should be destroyed manually before
perform restore operation [group=test-cache,
dir=/home/xtern/src/java/ignite/source/work/db/gridCommandHandlerTest1/cache-test-cache]
at
org.apache.ignite.internal.util.IgniteUtils.convertException(IgniteUtils.java:1114)
at
org.apache.ignite.internal.util.future.IgniteFutureImpl.convertException(IgniteFutureImpl.java:186)
at
org.apache.ignite.internal.util.future.IgniteFutureImpl.get(IgniteFutureImpl.java:155)
at
org.apache.ignite.internal.visor.snapshot.VisorSnapshotRestoreTask$VisorSnapshotStartRestoreJob.run(VisorSnapshotRestoreTask.java:71)
at
org.apache.ignite.internal.visor.snapshot.VisorSnapshotRestoreTask$VisorSnapshotStartRestoreJob.run(VisorSnapshotRestoreTask.java:53)
at org.apache.ignite.internal.visor.VisorJob.execute(VisorJob.java:69)
at
org.apache.ignite.internal.processors.job.GridJobWorker$2.call(GridJobWorker.java:620)
at
org.apache.ignite.internal.util.IgniteUtils.wrapThreadLoader(IgniteUtils.java:7334)
at
org.apache.ignite.internal.processors.job.GridJobWorker.execute0(GridJobWorker.java:614)
at
org.apache.ignite.internal.processors.job.GridJobWorker.body(GridJobWorker.java:539)
at
org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:125)
at
org.apache.ignite.internal.processors.job.GridJobProcessor.processJobExecuteRequest(GridJobProcessor.java:1343)
at
org.apache.ignite.internal.processors.task.GridTaskWorker.sendRequest(GridTaskWorker.java:1444)
at
org.apache.ignite.internal.processors.task.GridTaskWorker.processMappedJobs(GridTaskWorker.java:674)
at
org.apache.ignite.internal.processors.task.GridTaskWorker.body(GridTaskWorker.java:540)
... 14 more
Caused by: class org.apache.ignite.IgniteCheckedException: Unable to restore
cache group - directory is not empty. Cache group should be destroyed manually
before perform restore operation [group=test-cache,
dir=/home/xtern/src/java/ignite/source/work/db/gridCommandHandlerTest1/cache-test-cache]
at
org.apache.ignite.internal.processors.cache.persistence.snapshot.SnapshotRestoreProcess.prepareContext(SnapshotRestoreProcess.java:683)
at
org.apache.ignite.internal.processors.cache.persistence.snapshot.SnapshotRestoreProcess.prepare(SnapshotRestoreProcess.java:586)
at
org.apache.ignite.internal.util.distributed.DistributedProcess.lambda$new$2(DistributedProcess.java:149)
at
org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$4.onDiscovery0(GridDiscoveryManager.java:772)
at
org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$4.access$7500(GridDiscoveryManager.java:559)
at
org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$4$NotificationTask.run(GridDiscoveryManager.java:994)
at
org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$DiscoveryMessageNotifierWorker.body0(GridDiscoveryManager.java:2852)
at
org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$DiscoveryMessageNotifierWorker.body(GridDiscoveryManager.java:2890)
at
org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:125)
... 1 more
Failed to reduce job results due to undeclared user exception
[task=org.apache.ignite.internal.visor.snapshot.VisorSnapshotRestoreTask@1fd7cb69,
err=class org.apache.ignite.IgniteException: Unable to restore cache group -
directory is not empty. Cache group should be destroyed manually before perform
restore operation [group=test-cache,
dir=/home/xtern/src/java/ignite/source/work/db/gridCommandHandlerTest1/cache-test-cache]],
trace=class org.apache.ignite.IgniteCheckedException: Failed to reduce job
results due to undeclared user exception
[task=org.apache.ignite.internal.visor.snapshot.VisorSnapshotRestoreTask@1fd7cb69,
err=class org.apache.ignite.IgniteException: Unable to restore cache group -
directory is not empty. Cache group should be destroyed manually before perform
restore operation [group=test-cache,
dir=/home/xtern/src/java/ignite/source/work/db/gridCommandHandlerTest1/cache-test-cache]]
at
org.apache.ignite.internal.util.IgniteUtils.cast(IgniteUtils.java:7836)
at
org.apache.ignite.internal.util.future.GridFutureAdapter.resolve(GridFutureAdapter.java:260)
at
org.apache.ignite.internal.util.future.GridFutureAdapter.get0(GridFutureAdapter.java:172)
at
org.apache.ignite.internal.util.future.GridFutureAdapter.get(GridFutureAdapter.java:141)
at
org.apache.ignite.internal.processors.rest.handlers.task.GridTaskCommandHandler$2.apply(GridTaskCommandHandler.java:259)
at
org.apache.ignite.internal.processors.rest.handlers.task.GridTaskCommandHandler$2.apply(GridTaskCommandHandler.java:253)
at
org.apache.ignite.internal.util.future.GridFutureAdapter.notifyListener(GridFutureAdapter.java:399)
at
org.apache.ignite.internal.util.future.GridFutureAdapter.listen(GridFutureAdapter.java:354)
at
org.apache.ignite.internal.processors.rest.handlers.task.GridTaskCommandHandler.handleAsyncUnsafe(GridTaskCommandHandler.java:253)
at
org.apache.ignite.internal.processors.rest.handlers.task.GridTaskCommandHandler.handleAsync(GridTaskCommandHandler.java:162)
at
org.apache.ignite.internal.processors.rest.GridRestProcessor.handleRequest0(GridRestProcessor.java:317)
at
org.apache.ignite.internal.processors.rest.GridRestProcessor.handleRequest(GridRestProcessor.java:303)
at
org.apache.ignite.internal.processors.rest.GridRestProcessor.access$000(GridRestProcessor.java:108)
at
org.apache.ignite.internal.processors.rest.GridRestProcessor$2.body(GridRestProcessor.java:189)
at
org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:125)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: class org.apache.ignite.compute.ComputeUserUndeclaredException:
Failed to reduce job results due to undeclared user exception
[task=org.apache.ignite.internal.visor.snapshot.VisorSnapshotRestoreTask@1fd7cb69,
err=class org.apache.ignite.IgniteException: Unable to restore cache group -
directory is not empty. Cache group should be destroyed manually before perform
restore operation [group=test-cache,
dir=/home/xtern/src/java/ignite/source/work/db/gridCommandHandlerTest1/cache-test-cache]]
at
org.apache.ignite.internal.processors.task.GridTaskWorker.reduce(GridTaskWorker.java:1197)
at
org.apache.ignite.internal.processors.task.GridTaskWorker.onResponse(GridTaskWorker.java:985)
at
org.apache.ignite.internal.processors.task.GridTaskWorker.processDelayedResponses(GridTaskWorker.java:721)
at
org.apache.ignite.internal.processors.task.GridTaskWorker.body(GridTaskWorker.java:546)
at
org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:125)
at
org.apache.ignite.internal.processors.task.GridTaskProcessor.startTask(GridTaskProcessor.java:860)
at
org.apache.ignite.internal.processors.task.GridTaskProcessor.execute(GridTaskProcessor.java:590)
at
org.apache.ignite.internal.processors.task.GridTaskProcessor.execute(GridTaskProcessor.java:570)
at
org.apache.ignite.internal.processors.rest.handlers.task.GridTaskCommandHandler.handleAsyncUnsafe(GridTaskCommandHandler.java:223)
... 9 more
Caused by: class org.apache.ignite.IgniteException: Unable to restore cache
group - directory is not empty. Cache group should be destroyed manually before
perform restore operation [group=test-cache,
dir=/home/xtern/src/java/ignite/source/work/db/gridCommandHandlerTest1/cache-test-cache]
at
org.apache.ignite.internal.util.IgniteUtils.convertException(IgniteUtils.java:1114)
at
org.apache.ignite.internal.util.future.IgniteFutureImpl.convertException(IgniteFutureImpl.java:186)
at
org.apache.ignite.internal.util.future.IgniteFutureImpl.get(IgniteFutureImpl.java:155)
at
org.apache.ignite.internal.visor.snapshot.VisorSnapshotRestoreTask$VisorSnapshotStartRestoreJob.run(VisorSnapshotRestoreTask.java:71)
at
org.apache.ignite.internal.visor.snapshot.VisorSnapshotRestoreTask$VisorSnapshotStartRestoreJob.run(VisorSnapshotRestoreTask.java:53)
at org.apache.ignite.internal.visor.VisorJob.execute(VisorJob.java:69)
at
org.apache.ignite.internal.processors.job.GridJobWorker$2.call(GridJobWorker.java:620)
at
org.apache.ignite.internal.util.IgniteUtils.wrapThreadLoader(IgniteUtils.java:7334)
at
org.apache.ignite.internal.processors.job.GridJobWorker.execute0(GridJobWorker.java:614)
at
org.apache.ignite.internal.processors.job.GridJobWorker.body(GridJobWorker.java:539)
at
org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:125)
at
org.apache.ignite.internal.processors.job.GridJobProcessor.processJobExecuteRequest(GridJobProcessor.java:1343)
at
org.apache.ignite.internal.processors.task.GridTaskWorker.sendRequest(GridTaskWorker.java:1444)
at
org.apache.ignite.internal.processors.task.GridTaskWorker.processMappedJobs(GridTaskWorker.java:674)
at
org.apache.ignite.internal.processors.task.GridTaskWorker.body(GridTaskWorker.java:540)
... 14 more
Caused by: class org.apache.ignite.IgniteCheckedException: Unable to restore
cache group - directory is not empty. Cache group should be destroyed manually
before perform restore operation [group=test-cache,
dir=/home/xtern/src/java/ignite/source/work/db/gridCommandHandlerTest1/cache-test-cache]
at
org.apache.ignite.internal.processors.cache.persistence.snapshot.SnapshotRestoreProcess.prepareContext(SnapshotRestoreProcess.java:683)
at
org.apache.ignite.internal.processors.cache.persistence.snapshot.SnapshotRestoreProcess.prepare(SnapshotRestoreProcess.java:586)
at
org.apache.ignite.internal.util.distributed.DistributedProcess.lambda$new$2(DistributedProcess.java:149)
at
org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$4.onDiscovery0(GridDiscoveryManager.java:772)
at
org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$4.access$7500(GridDiscoveryManager.java:559)
at
org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$4$NotificationTask.run(GridDiscoveryManager.java:994)
at
org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$DiscoveryMessageNotifierWorker.body0(GridDiscoveryManager.java:2852)
at
org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$DiscoveryMessageNotifierWorker.body(GridDiscoveryManager.java:2890)
at
org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:125)
... 1 more
Command [SNAPSHOT] finished with code: 4
Error stack trace:
class org.apache.ignite.internal.client.GridClientException: Failed to handle
request: [req=EXE,
taskName=org.apache.ignite.internal.visor.snapshot.VisorSnapshotRestoreTask,
params=[VisorTaskArgument [debug=false]], err=Failed to reduce job results due
to undeclared user exception
[task=org.apache.ignite.internal.visor.snapshot.VisorSnapshotRestoreTask@1fd7cb69,
err=class org.apache.ignite.IgniteException: Unable to restore cache group -
directory is not empty. Cache group should be destroyed manually before perform
restore operation [group=test-cache,
dir=/home/xtern/src/java/ignite/source/work/db/gridCommandHandlerTest1/cache-test-cache]],
trace=class org.apache.ignite.IgniteCheckedException: Failed to reduce job
results due to undeclared user exception
[task=org.apache.ignite.internal.visor.snapshot.VisorSnapshotRestoreTask@1fd7cb69,
err=class org.apache.ignite.IgniteException: Unable to restore cache group -
directory is not empty. Cache group should be destroyed manually before perform
restore operation [group=test-cache,
dir=/home/xtern/src/java/ignite/source/work/db/gridCommandHandlerTest1/cache-test-cache]]
at
org.apache.ignite.internal.util.IgniteUtils.cast(IgniteUtils.java:7836)
at
org.apache.ignite.internal.util.future.GridFutureAdapter.resolve(GridFutureAdapter.java:260)
at
org.apache.ignite.internal.util.future.GridFutureAdapter.get0(GridFutureAdapter.java:172)
at
org.apache.ignite.internal.util.future.GridFutureAdapter.get(GridFutureAdapter.java:141)
at
org.apache.ignite.internal.processors.rest.handlers.task.GridTaskCommandHandler$2.apply(GridTaskCommandHandler.java:259)
at
org.apache.ignite.internal.processors.rest.handlers.task.GridTaskCommandHandler$2.apply(GridTaskCommandHandler.java:253)
at
org.apache.ignite.internal.util.future.GridFutureAdapter.notifyListener(GridFutureAdapter.java:399)
at
org.apache.ignite.internal.util.future.GridFutureAdapter.listen(GridFutureAdapter.java:354)
at
org.apache.ignite.internal.processors.rest.handlers.task.GridTaskCommandHandler.handleAsyncUnsafe(GridTaskCommandHandler.java:253)
at
org.apache.ignite.internal.processors.rest.handlers.task.GridTaskCommandHandler.handleAsync(GridTaskCommandHandler.java:162)
at
org.apache.ignite.internal.processors.rest.GridRestProcessor.handleRequest0(GridRestProcessor.java:317)
at
org.apache.ignite.internal.processors.rest.GridRestProcessor.handleRequest(GridRestProcessor.java:303)
at
org.apache.ignite.internal.processors.rest.GridRestProcessor.access$000(GridRestProcessor.java:108)
at
org.apache.ignite.internal.processors.rest.GridRestProcessor$2.body(GridRestProcessor.java:189)
at
org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:125)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: class org.apache.ignite.compute.ComputeUserUndeclaredException:
Failed to reduce job results due to undeclared user exception
[task=org.apache.ignite.internal.visor.snapshot.VisorSnapshotRestoreTask@1fd7cb69,
err=class org.apache.ignite.IgniteException: Unable to restore cache group -
directory is not empty. Cache group should be destroyed manually before perform
restore operation [group=test-cache,
dir=/home/xtern/src/java/ignite/source/work/db/gridCommandHandlerTest1/cache-test-cache]]
at
org.apache.ignite.internal.processors.task.GridTaskWorker.reduce(GridTaskWorker.java:1197)
at
org.apache.ignite.internal.processors.task.GridTaskWorker.onResponse(GridTaskWorker.java:985)
at
org.apache.ignite.internal.processors.task.GridTaskWorker.processDelayedResponses(GridTaskWorker.java:721)
at
org.apache.ignite.internal.processors.task.GridTaskWorker.body(GridTaskWorker.java:546)
at
org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:125)
at
org.apache.ignite.internal.processors.task.GridTaskProcessor.startTask(GridTaskProcessor.java:860)
at
org.apache.ignite.internal.processors.task.GridTaskProcessor.execute(GridTaskProcessor.java:590)
at
org.apache.ignite.internal.processors.task.GridTaskProcessor.execute(GridTaskProcessor.java:570)
at
org.apache.ignite.internal.processors.rest.handlers.task.GridTaskCommandHandler.handleAsyncUnsafe(GridTaskCommandHandler.java:223)
... 9 more
Caused by: class org.apache.ignite.IgniteException: Unable to restore cache
group - directory is not empty. Cache group should be destroyed manually before
perform restore operation [group=test-cache,
dir=/home/xtern/src/java/ignite/source/work/db/gridCommandHandlerTest1/cache-test-cache]
at
org.apache.ignite.internal.util.IgniteUtils.convertException(IgniteUtils.java:1114)
at
org.apache.ignite.internal.util.future.IgniteFutureImpl.convertException(IgniteFutureImpl.java:186)
at
org.apache.ignite.internal.util.future.IgniteFutureImpl.get(IgniteFutureImpl.java:155)
at
org.apache.ignite.internal.visor.snapshot.VisorSnapshotRestoreTask$VisorSnapshotStartRestoreJob.run(VisorSnapshotRestoreTask.java:71)
at
org.apache.ignite.internal.visor.snapshot.VisorSnapshotRestoreTask$VisorSnapshotStartRestoreJob.run(VisorSnapshotRestoreTask.java:53)
at org.apache.ignite.internal.visor.VisorJob.execute(VisorJob.java:69)
at
org.apache.ignite.internal.processors.job.GridJobWorker$2.call(GridJobWorker.java:620)
at
org.apache.ignite.internal.util.IgniteUtils.wrapThreadLoader(IgniteUtils.java:7334)
at
org.apache.ignite.internal.processors.job.GridJobWorker.execute0(GridJobWorker.java:614)
at
org.apache.ignite.internal.processors.job.GridJobWorker.body(GridJobWorker.java:539)
at
org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:125)
at
org.apache.ignite.internal.processors.job.GridJobProcessor.processJobExecuteRequest(GridJobProcessor.java:1343)
at
org.apache.ignite.internal.processors.task.GridTaskWorker.sendRequest(GridTaskWorker.java:1444)
at
org.apache.ignite.internal.processors.task.GridTaskWorker.processMappedJobs(GridTaskWorker.java:674)
at
org.apache.ignite.internal.processors.task.GridTaskWorker.body(GridTaskWorker.java:540)
... 14 more
Caused by: class org.apache.ignite.IgniteCheckedException: Unable to restore
cache group - directory is not empty. Cache group should be destroyed manually
before perform restore operation [group=test-cache,
dir=/home/xtern/src/java/ignite/source/work/db/gridCommandHandlerTest1/cache-test-cache]
at
org.apache.ignite.internal.processors.cache.persistence.snapshot.SnapshotRestoreProcess.prepareContext(SnapshotRestoreProcess.java:683)
at
org.apache.ignite.internal.processors.cache.persistence.snapshot.SnapshotRestoreProcess.prepare(SnapshotRestoreProcess.java:586)
at
org.apache.ignite.internal.util.distributed.DistributedProcess.lambda$new$2(DistributedProcess.java:149)
at
org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$4.onDiscovery0(GridDiscoveryManager.java:772)
at
org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$4.access$7500(GridDiscoveryManager.java:559)
at
org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$4$NotificationTask.run(GridDiscoveryManager.java:994)
at
org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$DiscoveryMessageNotifierWorker.body0(GridDiscoveryManager.java:2852)
at
org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$DiscoveryMessageNotifierWorker.body(GridDiscoveryManager.java:2890)
at
org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:125)
... 1 more
]
at
org.apache.ignite.internal.client.impl.connection.GridClientNioTcpConnection.handleClientResponse(GridClientNioTcpConnection.java:632)
at
org.apache.ignite.internal.client.impl.connection.GridClientNioTcpConnection.handleResponse(GridClientNioTcpConnection.java:563)
at
org.apache.ignite.internal.client.impl.connection.GridClientConnectionManagerAdapter$NioListener.onMessage(GridClientConnectionManagerAdapter.java:691)
at
org.apache.ignite.internal.util.nio.GridNioFilterChain$TailFilter.onMessageReceived(GridNioFilterChain.java:279)
at
org.apache.ignite.internal.util.nio.GridNioFilterAdapter.proceedMessageReceived(GridNioFilterAdapter.java:109)
at
org.apache.ignite.internal.util.nio.GridNioCodecFilter.onMessageReceived(GridNioCodecFilter.java:116)
at
org.apache.ignite.internal.util.nio.GridNioFilterAdapter.proceedMessageReceived(GridNioFilterAdapter.java:109)
at
org.apache.ignite.internal.util.nio.GridNioServer$HeadFilter.onMessageReceived(GridNioServer.java:3734)
at
org.apache.ignite.internal.util.nio.GridNioFilterChain.onMessageReceived(GridNioFilterChain.java:175)
at
org.apache.ignite.internal.util.nio.GridNioServer$ByteBufferNioClientWorker.processRead(GridNioServer.java:1211)
at
org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.processSelectedKeysOptimized(GridNioServer.java:2508)
at
org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.bodyInternal(GridNioServer.java:2273)
at
org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.body(GridNioServer.java:1910)
at
org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:125)
at java.lang.Thread.run(Thread.java:748)
Control utility has completed execution at: 2022-02-17T15:46:29.859
Execution time: 276 ms
{noformat}
> Add special option to run snapshot commands (create/restore) synchronously.
> ---------------------------------------------------------------------------
>
> Key: IGNITE-15450
> URL: https://issues.apache.org/jira/browse/IGNITE-15450
> Project: Ignite
> Issue Type: Improvement
> Components: control.sh
> Reporter: Pavel Pereslegin
> Assignee: Pavel Pereslegin
> Priority: Major
> Labels: iep-43, ise
> Time Spent: 1h 20m
> Remaining Estimate: 0h
>
> The process of restoring a snapshot fails if at least one of the restored
> caches already exists.
> However, when starting this operation via control.sh, the command returns a
> successful startup status, which can be confusing for users.
> We can improve this behavior by adding a separate check for existing caches
> when starting the restore operation and displaying a user-friendly error
> message.
> An *alternative* option is to start a snapshot restore operation
> synchronously.
--
This message was sent by Atlassian Jira
(v8.20.1#820001)