[
https://issues.apache.org/jira/browse/IGNITE-27372?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Nikolay Izhikov reassigned IGNITE-27372:
----------------------------------------
Assignee: Nikolay Izhikov
> Snapshot restore fails if indexPath equals to extraStoragePath
> --------------------------------------------------------------
>
> Key: IGNITE-27372
> URL: https://issues.apache.org/jira/browse/IGNITE-27372
> Project: Ignite
> Issue Type: Sub-task
> Reporter: Nikolay Izhikov
> Assignee: Nikolay Izhikov
> Priority: Blocker
> Labels: ise
>
> Reproducer:
> {noformat}
> public class SnapshotCreationNonDeafultStoragePath2Test extends
> GridCommonAbstractTest {
> /** {@inheritDoc} */
> @Override protected IgniteConfiguration getConfiguration(String
> igniteInstanceName) throws Exception {
> IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
> DataStorageConfiguration dsCfg = new DataStorageConfiguration()
> .setStoragePath(path("path1"))
> .setExtraStoragePaths(path("path2"), path("path3"),
> path("path4"));
> dsCfg.getDefaultDataRegionConfiguration()
> .setPersistenceEnabled(true);
> return cfg
> .setConsistentId(consId(cfg))
> .setDataStorageConfiguration(dsCfg);
> }
> /** {@inheritDoc} */
> @Override protected void beforeTest() throws Exception {
> super.beforeTest();
> U.delete(new File(U.defaultWorkDirectory()));
> }
> /** {@inheritDoc} */
> @Override protected void afterTest() throws Exception {
> stopAllGrids();
> U.delete(new File(U.defaultWorkDirectory()));
> }
> /** */
> @Test
> public void testSameIndexAndCachePath() throws Exception {
> IgniteEx srv = startGrid(0);
> srv.cluster().state(ClusterState.ACTIVE);
> IgniteCache<Integer, Integer> c = srv.createCache(new
> CacheConfiguration<Integer, Integer>(DEFAULT_CACHE_NAME)
> .setStoragePaths(path("path1"), path("path2"), path("path3"),
> path("path4"))
> .setIndexPath(path("path2")));
> IntStream.range(0, 100).forEach(i -> c.put(i, i));
> srv.snapshot().createSnapshot("snapshot").get();
> stopAllGrids();
> cleanPersistenceDir(true);
> U.delete(new File(path("path1")));
> U.delete(new File(path("path2"), "db"));
> U.delete(new File(path("path3"), "db"));
> U.delete(new File(path("path4"), "db"));
> srv = startGrid(0);
> srv.cluster().state(ClusterState.ACTIVE);
> srv.snapshot().restoreSnapshot("snapshot", null).get();
> IgniteCache<Integer, Integer> c2 = srv.cache(DEFAULT_CACHE_NAME);
> IntStream.range(0, 100).boxed().forEach(i -> assertEquals(i,
> c2.get(i)));
> }
> public String path(String folder) throws IgniteCheckedException {
> return new File(new File(U.defaultWorkDirectory()),
> folder).getAbsolutePath();
> }
> }
> {noformat}
> Fails with the:
> {noformat}
> Caused by: class org.apache.ignite.IgniteException:
> /Users/user/src/ignite/work/path2/db/filename_SnapshotCreationNonDeafultStoragePath2Test0/_tmp_snp_restore_cache-default
> ->
> /Users/user/src/ignite/work/path2/db/filename_SnapshotCreationNonDeafultStoragePath2Test0/cache-default
> at
> org.apache.ignite.internal.processors.cache.persistence.snapshot.SnapshotRestoreProcess.lambda$preload$28(SnapshotRestoreProcess.java:1182)
> at
> java.base/java.util.concurrent.CompletableFuture.biRun(CompletableFuture.java:1375)
> ... 14 more
> Caused by: java.nio.file.NoSuchFileException:
> /Users/user/src/ignite/work/path2/db/filename_SnapshotCreationNonDeafultStoragePath2Test0/_tmp_snp_restore_cache-default
> ->
> /Users/user/src/ignite/work/path2/db/filename_SnapshotCreationNonDeafultStoragePath2Test0/cache-default
> at
> java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:92)
> at
> java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111)
> at java.base/sun.nio.fs.UnixCopyFile.move(UnixCopyFile.java:417)
> at
> java.base/sun.nio.fs.UnixFileSystemProvider.move(UnixFileSystemProvider.java:267)
> at java.base/java.nio.file.Files.move(Files.java:1422)
> at
> org.apache.ignite.internal.processors.cache.persistence.snapshot.SnapshotRestoreProcess.lambda$preload$28(SnapshotRestoreProcess.java:1178)
> ... 15 more
> {noformat}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)