[ 
https://issues.apache.org/jira/browse/IGNITE-13127?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Pavel Pereslegin updated IGNITE-13127:
--------------------------------------
    Summary: Master key change can produce exception in discovery notifier 
worker when WAL is disabled.  (was: Master key change can produce exception in 
discovery notyfier worker when WAL is disabled.)

> Master key change can produce exception in discovery notifier worker when WAL 
> is disabled.
> ------------------------------------------------------------------------------------------
>
>                 Key: IGNITE-13127
>                 URL: https://issues.apache.org/jira/browse/IGNITE-13127
>             Project: Ignite
>          Issue Type: Bug
>            Reporter: Pavel Pereslegin
>            Priority: Minor
>
> When WALMode is set to NONE, master key change may produce the following 
> error.
> {noformat}
> Critical system error detected. Will be handled accordingly to configured 
> handler [hnd=NoOpFailureHandler [super=AbstractFailureHandler 
> [ignoredFailureTypes=UnmodifiableSet [SYSTEM_WORKER_BLOCKED, 
> SYSTEM_CRITICAL_OPERATION_TIMEOUT]]], failureCtx=FailureContext 
> [type=SYSTEM_WORKER_TERMINATION, err=java.lang.AssertionError]]
> java.lang.AssertionError
>       at 
> org.apache.ignite.internal.managers.encryption.GridEncryptionManager.writeKeysToWal(GridEncryptionManager.java:1679)
>       at 
> org.apache.ignite.internal.managers.encryption.GridEncryptionManager.doChangeMasterKey(GridEncryptionManager.java:1642)
>       at 
> org.apache.ignite.internal.managers.encryption.GridEncryptionManager.performMasterKeyChange(GridEncryptionManager.java:1821)
>       at 
> org.apache.ignite.internal.util.distributed.DistributedProcess.lambda$new$2(DistributedProcess.java:150)
>       at 
> org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$4.onDiscovery0(GridDiscoveryManager.java:732)
>       at 
> org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$4.lambda$onDiscovery$0(GridDiscoveryManager.java:533)
>       at 
> org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$DiscoveryMessageNotifierWorker.body0(GridDiscoveryManager.java:2641)
>       at 
> org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$DiscoveryMessageNotifierWorker.body(GridDiscoveryManager.java:2679)
>       at 
> org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120)
>       at java.lang.Thread.run(Thread.java:748)
> {noformat}
> Reproducer
> {code:java}
>     @Override protected IgniteConfiguration getConfiguration(String name) 
> throws Exception {
>         KeystoreEncryptionSpi encSpi = new KeystoreEncryptionSpi();
>         
> encSpi.setKeyStorePath(resolveIgnitePath("modules/core/src/test/resources/tde.jks").getAbsolutePath());
>         encSpi.setKeyStorePassword("love_sex_god".toCharArray());
>         DataStorageConfiguration memCfg = new DataStorageConfiguration()
>             .setDefaultDataRegionConfiguration(
>                 new DataRegionConfiguration()
>                     .setMaxSize(10L * 1024 * 1024)
>                     .setPersistenceEnabled(true))
>             .setWalMode(NONE);
>         return super.getConfiguration(name).
>             setDataStorageConfiguration(memCfg).
>             setEncryptionSpi(encSpi);
>     }
>     @Test
>     public void testChangeMasterKey() throws Exception {
>         Ignite node0 = startGrid(0);
>         node0.cluster().state(ClusterState.ACTIVE);
>         node0.encryption().changeMasterKey(MASTER_KEY_NAME_2).get();
>     }
> {code}
> For in-memory cluster master key rotation produces the following error:
> {noformat}
> Critical system error detected. Will be handled accordingly to configured 
> handler [hnd=NoOpFailureHandler [super=AbstractFailureHandler 
> [ignoredFailureTypes=UnmodifiableSet [SYSTEM_WORKER_BLOCKED, 
> SYSTEM_CRITICAL_OPERATION_TIMEOUT]]], failureCtx=FailureContext 
> [type=CRITICAL_ERROR, err=class o.a.i.IgniteException: Unable to change 
> master key locally.]]
> class org.apache.ignite.IgniteException: Unable to change master key locally.
>       at 
> org.apache.ignite.internal.managers.encryption.GridEncryptionManager.doChangeMasterKey(GridEncryptionManager.java:1658)
>       at 
> org.apache.ignite.internal.managers.encryption.GridEncryptionManager.performMasterKeyChange(GridEncryptionManager.java:1821)
>       at 
> org.apache.ignite.internal.util.distributed.DistributedProcess.lambda$new$2(DistributedProcess.java:150)
>       at 
> org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$4.onDiscovery0(GridDiscoveryManager.java:732)
>       at 
> org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$4.lambda$onDiscovery$0(GridDiscoveryManager.java:533)
>       at 
> org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$DiscoveryMessageNotifierWorker.body0(GridDiscoveryManager.java:2641)
>       at 
> org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$DiscoveryMessageNotifierWorker.body(GridDiscoveryManager.java:2679)
>       at 
> org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120)
>       at java.lang.Thread.run(Thread.java:748)
> Caused by: java.lang.NullPointerException
>       at 
> org.apache.ignite.internal.managers.encryption.GridEncryptionManager.writeKeysToWal(GridEncryptionManager.java:1677)
>       at 
> org.apache.ignite.internal.managers.encryption.GridEncryptionManager.doChangeMasterKey(GridEncryptionManager.java:1642)
> {noformat}
> It seems rotation should not start for in-memory cluster with some user 
> friendly message.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to