You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ignite.apache.org by Biraj Deb <bi...@bluepolaris.com> on 2025/12/12 12:39:44 UTC

Ignite 2.16 : BaselineTopology of joining node (nodeId) is not compatible with BaselineTopology in the cluster.

How to fix BaselineTopology of joining node ERROR?

Ignite Version = 2.16.0
Running Ignite Single Node with Springboot. once backend start ignite automatic start with that.
where Springboot Version: 127.0.0.1 and Java Version: 21

We are migrating ignite work directory from AWS Server to Proxmox Server(where file system is ZFS)
In AWS Server application is working on those data. after after migrated ingite throwing following error.

Ignite Error Log :
Caused by: org.apache.ignite.IgniteCheckedException: Failed to start SPI: TcpDiscoverySpi [addrRslvr=null, addressFilter=null, sockTimeout=5000, ackTimeout=5000, marsh=JdkMarshaller [clsFilter=org.apache.ignite.marshaller.MarshallerUtils$1@517013b3], reconCnt=10, reconDelay=2000, maxAckTimeout=600000, soLinger=0, forceSrvMode=false, clientReconnectDisabled=false, internalLsnr=null, skipAddrsRandomization=false]
        at org.apache.ignite.internal.managers.GridManagerAdapter.startSpi(GridManagerAdapter.java:280)
        at org.apache.ignite.internal.managers.discovery.GridDiscoveryManager.start(GridDiscoveryManager.java:1076)
        at org.apache.ignite.internal.IgniteKernal.startManager(IgniteKernal.java:1774)
        ... 47 common frames omitted
Caused by: org.apache.ignite.spi.IgniteSpiException: BaselineTopology of joining node (47cf4755-484a-438c-9a83-e8984eab05b3) is not compatible with BaselineTopology in the cluster. Branching history of cluster BlT ([439122630]) doesn't contain branching point hash of joining node BlT (-609359374). Consider cleaning persistent storage of the node and adding it to the cluster again.
        at org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi.checkFailedError(TcpDiscoverySpi.java:2110)
        at org.apache.ignite.spi.discovery.tcp.ServerImpl.joinTopology(ServerImpl.java:1204)
        at org.apache.ignite.spi.discovery.tcp.ServerImpl.spiStart(ServerImpl.java:472)
        at org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi.spiStart(TcpDiscoverySpi.java:2206)
        at org.apache.ignite.internal.managers.GridManagerAdapter.startSpi(GridManagerAdapter.java:277)
        ... 49 common frames omitted



Java Code :

@Configuration
public class IgniteInit {

    /**
     * This method is used to create ignite bean
     *
     * @return {@link Ignite}
     */
    @Bean
    public Ignite getIgnite() {
        return IgniteConfig.getIgnite();
    }
}

public class IgniteConfig {

    private static final String DFM_IGNITE_SERVER_XML = "dfm_ignite-server.xml";

    public static Ignite getIgnite() {
        if (ignite == null) {
            synchronized (IgniteConfig.class) {
                if (ignite == null) {
                    try {
                        ignite = Ignition.start(DFM_IGNITE_SERVER_XML);
                        loadData(ignite);
                    } catch (Exception e) {
                        LOGGER.error(e.getMessage());
                        LOGGER.error("Unexpected failure: %s\n", e);
                    }

                } else {
                    try {
                        Collection<String> cacheNames = ignite.cacheNames();
                        LOGGER.debug("cacheNames : " + cacheNames);
                    } catch (Exception e) {
                        try {
                            ignite.close();
                        } catch (Exception e1) {
                            e1.printStackTrace();
                        }
                        ignite = Ignition.start(DFM_IGNITE_SERVER_XML);
                        loadData(ignite);
                    }
                }
            }
        }
        // LOGGER.debug("ignite : " + ignite);
        return ignite;
    }

    /**
     * This method is used to load previous data
     *
     * @param ignite
     */
    private static void loadData(Ignite ignite) {
        LOGGER.info(">>> Loading cache ");
        ignite.cluster().state(ClusterState.ACTIVE);

        ignite.cache(IgniteConstant.PERMISSION_CACHE).loadCache(null);

        ignite.cache(IgniteConstant.OBJECT_TYPE_CACHE).loadCache(null);

        ignite.cache(IgniteConstant.OBJECT_CACHE).loadCache(null);
    }
    ...............
}

ignite xml config :
<?xml version="1.0" encoding="UTF-8"?>

<!-- This file was generated by Ignite Web Console (06/07/2019, 12:06) -->

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:util="http://www.springframework.org/schema/util"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
                           http://www.springframework.org/schema/beans/spring-beans.xsd
                           http://www.springframework.org/schema/util
                           http://www.springframework.org/schema/util/spring-util.xsd">


    <bean id="placeholderConfig"
        class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="location" value="ignite.properties" />
    </bean>


    <bean class="org.apache.ignite.configuration.IgniteConfiguration">
        <!-- <property name="clientMode" value="true"/> -->
        <property name="sqlSchemas">
            <list>
                <value>DFM</value>
            </list>
        </property>
        <property name="workDirectory" value="/home/ubuntu/work" />
        <!-- Adding binaryConfiguration -->
        <property name="binaryConfiguration">
            <bean
                class="org.apache.ignite.configuration.BinaryConfiguration">
                <property name="compactFooter" value="false" />
                <property name="typeConfigurations">
                    <list>
                        <bean class="org.apache.ignite.binary.BinaryTypeConfiguration">
                            <property name="typeName" value="org.springframework.hateoas.Link"/>
                            <property name="serializer">
                                <bean class="com.decisionmanagementsolutions.dfm.ignite.server.config.LinkBinarySerializer"/>
                            </property>
                        </bean>
                    </list>
                </property>
            </bean>
        </property>

        <property name="igniteInstanceName" value="dfm_ignite" />

        <property name="failureHandler">
            <bean class="org.apache.ignite.failure.NoOpFailureHandler">
                <property name="ignoredFailureTypes">
                    <list>
                    </list>
                </property>
            </bean>
        </property>

        <!-- Enabling Apache Ignite Persistent Store. -->
        <property name="dataStorageConfiguration">
            <bean
                class="org.apache.ignite.configuration.DataStorageConfiguration">
                <property name="checkpointFrequency" value="10000" />
                <property name="writeThrottlingEnabled" value="true" />

                <property name="defaultDataRegionConfiguration">
                    <bean
                        class="org.apache.ignite.configuration.DataRegionConfiguration">
                        <property name="persistenceEnabled" value="true" />

                        <property name="initialSize"
                            value="#{1L * 1024 * 1024 * 1024}" />
                        <property name="maxSize"
                            value="#{7L * 1024 * 1024 * 1024}" />

                    </bean>
                </property>

                <property name="storagePath" value="/home/ubuntu/work/db" />
                <property name="walPath" value="/home/ubuntu/work/wal/path" />
                <property name="walArchivePath"
                    value="/home/ubuntu/work/wal/archive/path" />
                <!-- Changing WAL Mode. -->
                <property name="walMode" value="FSYNC" />

                <property name="walPageCompression" value="LZ4" />
                <property name="walPageCompressionLevel" value="10" />

                <property name="walCompactionEnabled" value="true" />
                <property name="walCompactionLevel" value="6" />

                <property name="dataRegionConfigurations">
                    <bean
                        class="org.apache.ignite.configuration.DataRegionConfiguration">
                        <property name="name" value="inMemory_region" />
                        <property name="initialSize" value="#{20 * 1024 * 1024}" />
                        <property name="maxSize" value="#{512 * 1024 * 1024}" />
                        <property name="pageEvictionMode" value="RANDOM_2_LRU" />
                        <property name="persistenceEnabled" value="false" />
                    </bean>
                </property>

            </bean>
        </property>

        <property name="stripedPoolSize" value="10" />
        <property name="queryThreadPoolSize" value="20" />
        <property name="systemThreadPoolSize" value="12" />
        <property name="publicThreadPoolSize" value="24" />

        <property name="discoverySpi">
            <bean
                class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
                <property name="ipFinder">
                    <bean
                        class="org.apache.ignite.spi.discovery.tcp.ipfinder.multicast.TcpDiscoveryMulticastIpFinder">
                        <property name="addresses">
                            <list>
                                <value>127.0.0.1:47500..47510</value>
                            </list>
                        </property>
                    </bean>
                </property>
            </bean>
        </property>

        <property name="cacheConfiguration">
            <list>

                <!-- Object Type Cache -->
                <bean
                    class="org.apache.ignite.configuration.CacheConfiguration">
                    <property name="name" value="ObjectTypeCache" />
                    <property name="cacheMode" value="REPLICATED" />
                    <property name="atomicityMode" value="TRANSACTIONAL" />
                    <property name="sqlSchema" value="DFM" />

                    <property name="loadPreviousValue" value="true" />
                    <property name="statisticsEnabled" value="true" />
                    <property name="managementEnabled" value="true" />

                    <property name="queryEntities">
                        <list>
                            <bean class="org.apache.ignite.cache.QueryEntity">
                                <property name="keyType" value="java.lang.String" />
.......................



Re: Ignite 2.16 : BaselineTopology of joining node (nodeId) is not compatible with BaselineTopology in the cluster.

Posted by Mirza Aliev <al...@gmail.com>.
Hello!
Have you had a chance to clean up the persistent storage yet? The Ignite
error log suggests: “Consider cleaning persistent storage of the node and
adding it to the cluster again.”
This might help resolve the issue.

пт, 12 дек. 2025 г. в 16:40, Biraj Deb <bi...@bluepolaris.com>:

> How to fix BaselineTopology of joining node ERROR?
>
> Ignite Version = 2.16.0
> Running Ignite Single Node with Springboot. once backend start ignite
> automatic start with that.
> where Springboot Version: 127.0.0.1 and Java Version: 21
>
> We are migrating ignite work directory from AWS Server to Proxmox
> Server(where file system is ZFS)
> In AWS Server application is working on those data. after after migrated
> ingite throwing following error.
>
> *Ignite Error Log :*
> Caused by: org.apache.ignite.IgniteCheckedException: Failed to start SPI:
> TcpDiscoverySpi [addrRslvr=null, addressFilter=null, sockTimeout=5000,
> ackTimeout=5000, marsh=JdkMarshaller
> [clsFilter=org.apache.ignite.marshaller.MarshallerUtils$1@517013b3],
> reconCnt=10, reconDelay=2000, maxAckTimeout=600000, soLinger=0,
> forceSrvMode=false, clientReconnectDisabled=false, internalLsnr=null,
> skipAddrsRandomization=false]
>         at
> org.apache.ignite.internal.managers.GridManagerAdapter.startSpi(GridManagerAdapter.java:280)
>         at
> org.apache.ignite.internal.managers.discovery.GridDiscoveryManager.start(GridDiscoveryManager.java:1076)
>         at
> org.apache.ignite.internal.IgniteKernal.startManager(IgniteKernal.java:1774)
>         ... 47 common frames omitted
> Caused by: org.apache.ignite.spi.IgniteSpiException: BaselineTopology of
> joining node (47cf4755-484a-438c-9a83-e8984eab05b3) is not compatible with
> BaselineTopology in the cluster. Branching history of cluster BlT
> ([439122630]) doesn't contain branching point hash of joining node BlT
> (-609359374). Consider cleaning persistent storage of the node and adding
> it to the cluster again.
>         at
> org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi.checkFailedError(TcpDiscoverySpi.java:2110)
>         at
> org.apache.ignite.spi.discovery.tcp.ServerImpl.joinTopology(ServerImpl.java:1204)
>         at
> org.apache.ignite.spi.discovery.tcp.ServerImpl.spiStart(ServerImpl.java:472)
>         at
> org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi.spiStart(TcpDiscoverySpi.java:2206)
>         at
> org.apache.ignite.internal.managers.GridManagerAdapter.startSpi(GridManagerAdapter.java:277)
>         ... 49 common frames omitted
>
>
>
> *Java Code :*
>
> @Configuration
> public class IgniteInit {
>
>     /**
>      * This method is used to create ignite bean
>      *
>      * @return {@link Ignite}
>      */
>     @Bean
>     public Ignite getIgnite() {
>         return IgniteConfig.getIgnite();
>     }
> }
>
> public class IgniteConfig {
>
>     private static final String DFM_IGNITE_SERVER_XML =
> "dfm_ignite-server.xml";
>
>     public static Ignite getIgnite() {
>         if (ignite == null) {
>             synchronized (IgniteConfig.class) {
>                 if (ignite == null) {
>                     try {
>                         ignite = Ignition.start(DFM_IGNITE_SERVER_XML);
>                         loadData(ignite);
>                     } catch (Exception e) {
>                         LOGGER.error(e.getMessage());
>                         LOGGER.error("Unexpected failure: %s\n", e);
>                     }
>
>                 } else {
>                     try {
>                         Collection<String> cacheNames =
> ignite.cacheNames();
>                         LOGGER.debug("cacheNames : " + cacheNames);
>                     } catch (Exception e) {
>                         try {
>                             ignite.close();
>                         } catch (Exception e1) {
>                             e1.printStackTrace();
>                         }
>                         ignite = Ignition.start(DFM_IGNITE_SERVER_XML);
>                         loadData(ignite);
>                     }
>                 }
>             }
>         }
>         // LOGGER.debug("ignite : " + ignite);
>         return ignite;
>     }
>
>     /**
>      * This method is used to load previous data
>      *
>      * @param ignite
>      */
>     private static void loadData(Ignite ignite) {
>         LOGGER.info(">>> Loading cache ");
>         ignite.cluster().state(ClusterState.ACTIVE);
>
>         ignite.cache(IgniteConstant.PERMISSION_CACHE).loadCache(null);
>
>         ignite.cache(IgniteConstant.OBJECT_TYPE_CACHE).loadCache(null);
>
>         ignite.cache(IgniteConstant.OBJECT_CACHE).loadCache(null);
>     }
>     ...............
> }
>
> *ignite xml config :*
> <?xml version="1.0" encoding="UTF-8"?>
>
> <!-- This file was generated by Ignite Web Console (06/07/2019, 12:06) -->
>
> <beans xmlns="http://www.springframework.org/schema/beans"
>     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>     xmlns:util="http://www.springframework.org/schema/util"
>     xsi:schemaLocation="http://www.springframework.org/schema/beans
>
> http://www.springframework.org/schema/beans/spring-beans.xsd
>                            http://www.springframework.org/schema/util
>
> http://www.springframework.org/schema/util/spring-util.xsd">
>
>
>     <bean id="placeholderConfig"
>
> class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
>         <property name="location" value="ignite.properties" />
>     </bean>
>
>
>     <bean class="org.apache.ignite.configuration.IgniteConfiguration">
>         <!-- <property name="clientMode" value="true"/> -->
>         <property name="sqlSchemas">
>             <list>
>                 <value>DFM</value>
>             </list>
>         </property>
>         <property name="workDirectory" value="/home/ubuntu/work" />
>         <!-- Adding binaryConfiguration -->
>         <property name="binaryConfiguration">
>             <bean
>
> class="org.apache.ignite.configuration.BinaryConfiguration">
>                 <property name="compactFooter" value="false" />
>                 <property name="typeConfigurations">
>                     <list>
>                         <bean
> class="org.apache.ignite.binary.BinaryTypeConfiguration">
>                             <property name="typeName"
> value="org.springframework.hateoas.Link"/>
>                             <property name="serializer">
>                                 <bean
> class="com.decisionmanagementsolutions.dfm.ignite.server.config.LinkBinarySerializer"/>
>                             </property>
>                         </bean>
>                     </list>
>                 </property>
>             </bean>
>         </property>
>
>         <property name="igniteInstanceName" value="dfm_ignite" />
>
>         <property name="failureHandler">
>             <bean class="org.apache.ignite.failure.NoOpFailureHandler">
>                 <property name="ignoredFailureTypes">
>                     <list>
>                     </list>
>                 </property>
>             </bean>
>         </property>
>
>         <!-- Enabling Apache Ignite Persistent Store. -->
>         <property name="dataStorageConfiguration">
>             <bean
>
> class="org.apache.ignite.configuration.DataStorageConfiguration">
>                 <property name="checkpointFrequency" value="10000" />
>                 <property name="writeThrottlingEnabled" value="true" />
>
>                 <property name="defaultDataRegionConfiguration">
>                     <bean
>
> class="org.apache.ignite.configuration.DataRegionConfiguration">
>                         <property name="persistenceEnabled" value="true" />
>
>                         <property name="initialSize"
>                             value="#{1L * 1024 * 1024 * 1024}" />
>                         <property name="maxSize"
>                             value="#{7L * 1024 * 1024 * 1024}" />
>
>                     </bean>
>                 </property>
>
>                 <property name="storagePath" value="/home/ubuntu/work/db"
> />
>                 <property name="walPath"
> value="/home/ubuntu/work/wal/path" />
>                 <property name="walArchivePath"
>                     value="/home/ubuntu/work/wal/archive/path" />
>                 <!-- Changing WAL Mode. -->
>                 <property name="walMode" value="FSYNC" />
>
>                 <property name="walPageCompression" value="LZ4" />
>                 <property name="walPageCompressionLevel" value="10" />
>
>                 <property name="walCompactionEnabled" value="true" />
>                 <property name="walCompactionLevel" value="6" />
>
>                 <property name="dataRegionConfigurations">
>                     <bean
>
> class="org.apache.ignite.configuration.DataRegionConfiguration">
>                         <property name="name" value="inMemory_region" />
>                         <property name="initialSize" value="#{20 * 1024 *
> 1024}" />
>                         <property name="maxSize" value="#{512 * 1024 *
> 1024}" />
>                         <property name="pageEvictionMode"
> value="RANDOM_2_LRU" />
>                         <property name="persistenceEnabled" value="false"
> />
>                     </bean>
>                 </property>
>
>             </bean>
>         </property>
>
>         <property name="stripedPoolSize" value="10" />
>         <property name="queryThreadPoolSize" value="20" />
>         <property name="systemThreadPoolSize" value="12" />
>         <property name="publicThreadPoolSize" value="24" />
>
>         <property name="discoverySpi">
>             <bean
>
> class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
>                 <property name="ipFinder">
>                     <bean
>
> class="org.apache.ignite.spi.discovery.tcp.ipfinder.multicast.TcpDiscoveryMulticastIpFinder">
>                         <property name="addresses">
>                             <list>
>                                 <value>127.0.0.1:47500..47510</value>
>                             </list>
>                         </property>
>                     </bean>
>                 </property>
>             </bean>
>         </property>
>
>         <property name="cacheConfiguration">
>             <list>
>
>                 <!-- Object Type Cache -->
>                 <bean
>
> class="org.apache.ignite.configuration.CacheConfiguration">
>                     <property name="name" value="ObjectTypeCache" />
>                     <property name="cacheMode" value="REPLICATED" />
>                     <property name="atomicityMode" value="TRANSACTIONAL" />
>                     <property name="sqlSchema" value="DFM" />
>
>                     <property name="loadPreviousValue" value="true" />
>                     <property name="statisticsEnabled" value="true" />
>                     <property name="managementEnabled" value="true" />
>
>                     <property name="queryEntities">
>                         <list>
>                             <bean
> class="org.apache.ignite.cache.QueryEntity">
>                                 <property name="keyType"
> value="java.lang.String" />
> .......................
>
>
>