You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Mikhail Petrov (Jira)" <ji...@apache.org> on 2021/08/26 13:12:00 UTC
[jira] [Assigned] (IGNITE-15378) Node fail to restart in
maintenance mode with security enabled.
[ https://issues.apache.org/jira/browse/IGNITE-15378?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Mikhail Petrov reassigned IGNITE-15378:
---------------------------------------
Assignee: Mikhail Petrov
> Node fail to restart in maintenance mode with security enabled.
> ----------------------------------------------------------------
>
> Key: IGNITE-15378
> URL: https://issues.apache.org/jira/browse/IGNITE-15378
> Project: Ignite
> Issue Type: Bug
> Reporter: Mikhail Petrov
> Assignee: Mikhail Petrov
> Priority: Major
> Time Spent: 10m
> Remaining Estimate: 0h
>
> Exception:
> {code:java}
> class org.apache.ignite.plugin.security.SecurityException: Security context isn't certain.
> at org.apache.ignite.internal.processors.security.SecurityUtils.nodeSecurityContext(SecurityUtils.java:158)
> at org.apache.ignite.internal.processors.security.IgniteSecurityProcessor.onLocalJoin(IgniteSecurityProcessor.java:399)
> at org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$4.onDiscovery0(GridDiscoveryManager.java:799)
> at org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$4.lambda$onDiscovery$0(GridDiscoveryManager.java:575)
> at org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$DiscoveryMessageNotifierWorker.body0(GridDiscoveryManager.java:2793)
> at org.apache.ignite.internal.managers.discovery.GridDiscoveryManager$DiscoveryMessageNotifierWorker.body(GridDiscoveryManager.java:2831)
> at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:125)
> at java.lang.Thread.run(Thread.java:748)
> {code}
> Reproducer:
> {code:java}
> /** */
> public class MaintenanceModeNodeSecurityTest extends AbstractSecurityTest {
> /** {@inheritDoc} */
> @Override protected IgniteConfiguration getConfiguration(
> String instanceName,
> AbstractTestSecurityPluginProvider pluginProv
> ) throws Exception {
> DataStorageConfiguration dataStorageConfiguration = new DataStorageConfiguration()
> .setDefaultDataRegionConfiguration(new DataRegionConfiguration()
> .setPersistenceEnabled(true));
> return super.getConfiguration(instanceName, pluginProv)
> .setDataStorageConfiguration(dataStorageConfiguration);
> }
> /** {@inheritDoc} */
> @Override protected void beforeTestsStarted() throws Exception {
> cleanPersistenceDir();
> super.beforeTestsStarted();
> }
> /** Tests that node can be successfully restarted in maintenance mode with security enabled. */
> @Test
> public void testNodeStartInMaintenanceMode() throws Exception {
> IgniteEx crd = startGridAllowAll(getTestIgniteInstanceName(0));
> IgniteEx srv = startGridAllowAll(getTestIgniteInstanceName(1));
> crd.cluster().baselineAutoAdjustEnabled(false);
> crd.cluster().state(ACTIVE);
> IgniteCache<Object, Object> cache = crd.getOrCreateCache(new CacheConfiguration<>(DEFAULT_CACHE_NAME)
> .setAffinity(new RendezvousAffinityFunction(false, 32))
> .setBackups(1));
> String srvPdsFolder = srv.context().pdsFolderResolver().resolveFolders().folderName();
> File dbDir = U.resolveWorkDirectory(srv.configuration().getWorkDirectory(), "db", false);
> File srvLfsDir = new File(dbDir, srvPdsFolder);
> for (int k = 0; k < 1000; k++)
> cache.put(k, k);
> GridCacheDatabaseSharedManager srvDbMgr = (GridCacheDatabaseSharedManager)crd.context().cache().context().database();
> GridCacheDatabaseSharedManager crdDbMgr = (GridCacheDatabaseSharedManager)srv.context().cache().context().database();
> srvDbMgr.forceCheckpoint("cp").futureFor(CheckpointState.FINISHED).get();
> crdDbMgr.forceCheckpoint("cp").futureFor(CheckpointState.FINISHED).get();
> crd.cluster().disableWal(cache.getName());
> for (int k = 1000; k < 2000; k++)
> cache.put(k, k);
> stopGrid(1);
> File[] cpMarkers = new File(srvLfsDir, "cp").listFiles();
> for (File cpMark : cpMarkers) {
> if (cpMark.getName().contains("-END"))
> cpMark.delete();
> }
> assertThrows(log, () -> startGridAllowAll(getTestIgniteInstanceName(1)), Exception.class, null);
> assertTrue(startGridAllowAll(getTestIgniteInstanceName(1)).context().maintenanceRegistry().isMaintenanceMode());
> }
> }
> {code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)