Search code examples
ignite

Apache Ignite, Transparent Data Encryption: Master key digest differs! Node join is rejected


I have set up a 2 node cluster of apache ignite. Master keys are set up on both nodes with the same password using keytool. I am able to start one of the nodes. On starting the second node, it seems that the node is getting rejected from joining the cluster because of different digests.

Without the Transparent Data Encryption, the cluster had been working fine. I have used AWS-ELB for TcpDiscovery. I had persistence disabled previously. Now, I have enabled persistence and also activated the cluster using the control.sh.

-alias ignite.master.key \
-keystore ./ignite_keystore.jks \
-storetype PKCS12 \
-keyalg aes \
-storepass somepasswd \
-keysize 256```

```class org.apache.ignite.IgniteCheckedException: Failed to start SPI: TcpDiscoverySpi [addrRslvr=null, sockTimeout=5000, ackTimeout=5000, marsh=JdkMarshaller [clsFilter=org.apache.ignite.marshaller.MarshallerUtils$1@69fe0ed4], reconCnt=10, reconDelay=2000, maxAckTimeout=600000, forceSrvMode=false, clientReconnectDisabled=false, internalLsnr=null]
    at org.apache.ignite.internal.managers.GridManagerAdapter.startSpi(GridManagerAdapter.java:300)
    at org.apache.ignite.internal.managers.discovery.GridDiscoveryManager.start(GridDiscoveryManager.java:939)
    at org.apache.ignite.internal.IgniteKernal.startManager(IgniteKernal.java:1682)
    at org.apache.ignite.internal.IgniteKernal.start(IgniteKernal.java:1066)
    at org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start0(IgnitionEx.java:2038)
    at org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start(IgnitionEx.java:1730)
    at org.apache.ignite.internal.IgnitionEx.start0(IgnitionEx.java:1158)
    at org.apache.ignite.internal.IgnitionEx.startConfigurations(IgnitionEx.java:1076)
    at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:962)
    at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:861)
    at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:731)
    at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:700)
    at org.apache.ignite.Ignition.start(Ignition.java:348)
    at org.apache.ignite.startup.cmdline.CommandLineStartup.main(CommandLineStartup.java:301)
Caused by: class org.apache.ignite.spi.IgniteSpiException: Master key digest differs! Node join is rejected.
    at org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi.checkFailedError(TcpDiscoverySpi.java:1946)
    at org.apache.ignite.spi.discovery.tcp.ServerImpl.joinTopology(ServerImpl.java:969)
    at org.apache.ignite.spi.discovery.tcp.ServerImpl.spiStart(ServerImpl.java:391)
    at org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi.spiStart(TcpDiscoverySpi.java:2020)
    at org.apache.ignite.internal.managers.GridManagerAdapter.startSpi(GridManagerAdapter.java:297)
    ... 13 more
[14:47:45,576][SEVERE][main][IgniteKernal] Got exception while starting (will rollback startup routine).
class org.apache.ignite.IgniteCheckedException: Failed to start manager: GridManagerAdapter [enabled=true, name=org.apache.ignite.internal.managers.discovery.GridDiscoveryManager]
    at org.apache.ignite.internal.IgniteKernal.startManager(IgniteKernal.java:1687)
    at org.apache.ignite.internal.IgniteKernal.start(IgniteKernal.java:1066)
    at org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start0(IgnitionEx.java:2038)
    at org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start(IgnitionEx.java:1730)
    at org.apache.ignite.internal.IgnitionEx.start0(IgnitionEx.java:1158)
    at org.apache.ignite.internal.IgnitionEx.startConfigurations(IgnitionEx.java:1076)
    at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:962)
    at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:861)
    at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:731)
    at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:700)
    at org.apache.ignite.Ignition.start(Ignition.java:348)
    at org.apache.ignite.startup.cmdline.CommandLineStartup.main(CommandLineStartup.java:301)
Caused by: class org.apache.ignite.IgniteCheckedException: Failed to start SPI: TcpDiscoverySpi [addrRslvr=null, sockTimeout=5000, ackTimeout=5000, marsh=JdkMarshaller [clsFilter=org.apache.ignite.marshaller.MarshallerUtils$1@69fe0ed4], reconCnt=10, reconDelay=2000, maxAckTimeout=600000, forceSrvMode=false, clientReconnectDisabled=false, internalLsnr=null]
    at org.apache.ignite.internal.managers.GridManagerAdapter.startSpi(GridManagerAdapter.java:300)
    at org.apache.ignite.internal.managers.discovery.GridDiscoveryManager.start(GridDiscoveryManager.java:939)
    at org.apache.ignite.internal.IgniteKernal.startManager(IgniteKernal.java:1682)
    ... 11 more
Caused by: class org.apache.ignite.spi.IgniteSpiException: Master key digest differs! Node join is rejected.
    at org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi.checkFailedError(TcpDiscoverySpi.java:1946)
    at org.apache.ignite.spi.discovery.tcp.ServerImpl.joinTopology(ServerImpl.java:969)
    at org.apache.ignite.spi.discovery.tcp.ServerImpl.spiStart(ServerImpl.java:391)
    at org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi.spiStart(TcpDiscoverySpi.java:2020)
    at org.apache.ignite.internal.managers.GridManagerAdapter.startSpi(GridManagerAdapter.java:297)
    ... 13 more
[14:47:50] Ignite node stopped OK [uptime=00:00:07.942]
class org.apache.ignite.IgniteException: Failed to start manager: GridManagerAdapter [enabled=true, name=org.apache.ignite.internal.managers.discovery.GridDiscoveryManager]
    at org.apache.ignite.internal.util.IgniteUtils.convertException(IgniteUtils.java:1026)
    at org.apache.ignite.Ignition.start(Ignition.java:351)
    at org.apache.ignite.startup.cmdline.CommandLineStartup.main(CommandLineStartup.java:301)
Caused by: class org.apache.ignite.IgniteCheckedException: Failed to start manager: GridManagerAdapter [enabled=true, name=org.apache.ignite.internal.managers.discovery.GridDiscoveryManager]
    at org.apache.ignite.internal.IgniteKernal.startManager(IgniteKernal.java:1687)
    at org.apache.ignite.internal.IgniteKernal.start(IgniteKernal.java:1066)
    at org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start0(IgnitionEx.java:2038)
    at org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start(IgnitionEx.java:1730)
    at org.apache.ignite.internal.IgnitionEx.start0(IgnitionEx.java:1158)
    at org.apache.ignite.internal.IgnitionEx.startConfigurations(IgnitionEx.java:1076)
    at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:962)
    at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:861)
    at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:731)
    at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:700)
    at org.apache.ignite.Ignition.start(Ignition.java:348)
    ... 1 more
Caused by: class org.apache.ignite.IgniteCheckedException: Failed to start SPI: TcpDiscoverySpi [addrRslvr=null, sockTimeout=5000, ackTimeout=5000, marsh=JdkMarshaller [clsFilter=org.apache.ignite.marshaller.MarshallerUtils$1@69fe0ed4], reconCnt=10, reconDelay=2000, maxAckTimeout=600000, forceSrvMode=false, clientReconnectDisabled=false, internalLsnr=null]
    at org.apache.ignite.internal.managers.GridManagerAdapter.startSpi(GridManagerAdapter.java:300)
    at org.apache.ignite.internal.managers.discovery.GridDiscoveryManager.start(GridDiscoveryManager.java:939)
    at org.apache.ignite.internal.IgniteKernal.startManager(IgniteKernal.java:1682)
    ... 11 more
Caused by: class org.apache.ignite.spi.IgniteSpiException: Master key digest differs! Node join is rejected.
    at org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi.checkFailedError(TcpDiscoverySpi.java:1946)
    at org.apache.ignite.spi.discovery.tcp.ServerImpl.joinTopology(ServerImpl.java:969)
    at org.apache.ignite.spi.discovery.tcp.ServerImpl.spiStart(ServerImpl.java:391)
    at org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi.spiStart(TcpDiscoverySpi.java:2020)
    at org.apache.ignite.internal.managers.GridManagerAdapter.startSpi(GridManagerAdapter.java:297)
    ... 13 more
Failed to start grid: Failed to start manager: GridManagerAdapter [enabled=true, name=org.apache.ignite.internal.managers.discovery.GridDiscoveryManager]

Solution

  • An error means you use different master keys on the nodes and its has to be the same. The easiest way to get equal master keys is to copy JKS file from one node to another.

    Please, read the documentation about TDE - https://apacheignite.readme.io/docs/transparent-data-encryption