Description
The snapshot restore may hang when some of the cache group partitions have not been physically created (for example, there is not enough data in the cache).
Reproducer
public class IgniteClusterSnapshotRestoreEmptyPartsTest extends IgniteClusterSnapshotRestoreBaseTest { @Test public void testRestoreWithEmptyPartition() throws Exception { // Cache with 1024 partitions. CacheConfiguration<Integer, Object> cacheCfg1 = new CacheConfiguration<>(CACHE1); // Add only 10 keys (only 10 partitions will be created on the disk). IgniteEx ignite = startGridsWithCache(1, 10, Integer::new, cacheCfg1); // Snapshot contains only 10 (out of 1024 "affinity" partitions). ignite.snapshot().createSnapshot(SNAPSHOT_NAME).get(TIMEOUT); ignite.cache(CACHE1).destroy(); // The restore operation hangs during the "preload" phase. ignite.snapshot().restoreSnapshot(SNAPSHOT_NAME, null).get(TIMEOUT); } }
Attachments
Issue Links
- links to