[jira] [Commented] (IGNITE-3514) CPP: JVM crash on "Failed to start SPI" exception.
[ https://issues.apache.org/jira/browse/IGNITE-3514?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15754914#comment-15754914 ] Pavel Tupitsyn commented on IGNITE-3514: Merged to master. > CPP: JVM crash on "Failed to start SPI" exception. > -- > > Key: IGNITE-3514 > URL: https://issues.apache.org/jira/browse/IGNITE-3514 > Project: Ignite > Issue Type: Bug > Components: platforms >Affects Versions: 1.6 >Reporter: Igor Sapego >Assignee: Pavel Tupitsyn > Labels: cpp > Fix For: 2.0 > > > On invalid {{discoverySpi}} configuration JVM may crash (i.e. specify > negative {{socketTimeout}}). This is probably caused by the attempted call on > some platform callback which is null in C++. > {noformat} > Failed to start manager: GridManagerAdapter [enabled=true, > name=o.a.i.i.managers.discovery.GridDiscoveryManager] > class org.apache.ignite.IgniteCheckedException: Failed to start SPI: > TcpDiscoverySpi [addrRslvr=null, sockTimeout=-300, ackTimeout=5000, > reconCnt=10, maxAckTimeout=60, forceSrvMode=false, > clientReconnectDisabled=false] > at > org.apache.ignite.internal.managers.GridManagerAdapter.startSpi(GridManagerAdapter.java:270) > at > org.apache.ignite.internal.managers.discovery.GridDiscoveryManager.start(GridDiscoveryManager.java:681) > at > org.apache.ignite.internal.IgniteKernal.startManager(IgniteKernal.java:1571) > at > org.apache.ignite.internal.IgniteKernal.start(IgniteKernal.java:901) > at > org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start0(IgnitionEx.java:1739) > at > org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start(IgnitionEx.java:1589) > at org.apache.ignite.internal.IgnitionEx.start0(IgnitionEx.java:1042) > at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:549) > at > org.apache.ignite.internal.processors.platform.PlatformAbstractBootstrap.start(PlatformAbstractBootstrap.java:43) > at > org.apache.ignite.internal.processors.platform.PlatformIgnition.start(PlatformIgnition.java:76) > Caused by: class org.apache.ignite.spi.IgniteSpiException: SPI parameter > failed condition check: sockTimeout > 0 > at > org.apache.ignite.spi.IgniteSpiAdapter.assertParameter(IgniteSpiAdapter.java:344) > at > org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi.spiStart(TcpDiscoverySpi.java:1757) > at > org.apache.ignite.internal.managers.GridManagerAdapter.startSpi(GridManagerAdapter.java:267) > ... 9 more > [15:17:45,584][SEVERE][main][IgniteKernal%grid-0] 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:1576) > at > org.apache.ignite.internal.IgniteKernal.start(IgniteKernal.java:901) > at > org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start0(IgnitionEx.java:1739) > at > org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start(IgnitionEx.java:1589) > at org.apache.ignite.internal.IgnitionEx.start0(IgnitionEx.java:1042) > at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:549) > at > org.apache.ignite.internal.processors.platform.PlatformAbstractBootstrap.start(PlatformAbstractBootstrap.java:43) > at > org.apache.ignite.internal.processors.platform.PlatformIgnition.start(PlatformIgnition.java:76) > Caused by: class org.apache.ignite.IgniteCheckedException: Failed to start > SPI: TcpDiscoverySpi [addrRslvr=null, sockTimeout=-300, ackTimeout=5000, > reconCnt=10, maxAckTimeout=60, forceSrvMode=false, > clientReconnectDisabled=false] > at > org.apache.ignite.internal.managers.GridManagerAdapter.startSpi(GridManagerAdapter.java:270) > at > org.apache.ignite.internal.managers.discovery.GridDiscoveryManager.start(GridDiscoveryManager.java:681) > at > org.apache.ignite.internal.IgniteKernal.startManager(IgniteKernal.java:1571) > ... 7 more > Caused by: class org.apache.ignite.spi.IgniteSpiException: SPI parameter > failed condition check: sockTimeout > 0 > at > org.apache.ignite.spi.IgniteSpiAdapter.assertParameter(IgniteSpiAdapter.java:344) > at > org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi.spiStart(TcpDiscoverySpi.java:1757) > at > org.apache.ignite.internal.managers.GridManagerAdapter.startSpi(GridManagerAdapter.java:267) > ... 9 more > [15:17:45,594][SEVERE][main][IgniteKernal%grid-0] Failed to stop component > (ignoring): GridManagerAdapter
[jira] [Commented] (IGNITE-3514) CPP: JVM crash on "Failed to start SPI" exception.
[ https://issues.apache.org/jira/browse/IGNITE-3514?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15754706#comment-15754706 ] Pavel Tupitsyn commented on IGNITE-3514: Looks good, see minor comment. > CPP: JVM crash on "Failed to start SPI" exception. > -- > > Key: IGNITE-3514 > URL: https://issues.apache.org/jira/browse/IGNITE-3514 > Project: Ignite > Issue Type: Bug > Components: platforms >Affects Versions: 1.6 >Reporter: Igor Sapego >Assignee: Igor Sapego > Labels: cpp > Fix For: 2.0 > > > On invalid {{discoverySpi}} configuration JVM may crash (i.e. specify > negative {{socketTimeout}}). This is probably caused by the attempted call on > some platform callback which is null in C++. > {noformat} > Failed to start manager: GridManagerAdapter [enabled=true, > name=o.a.i.i.managers.discovery.GridDiscoveryManager] > class org.apache.ignite.IgniteCheckedException: Failed to start SPI: > TcpDiscoverySpi [addrRslvr=null, sockTimeout=-300, ackTimeout=5000, > reconCnt=10, maxAckTimeout=60, forceSrvMode=false, > clientReconnectDisabled=false] > at > org.apache.ignite.internal.managers.GridManagerAdapter.startSpi(GridManagerAdapter.java:270) > at > org.apache.ignite.internal.managers.discovery.GridDiscoveryManager.start(GridDiscoveryManager.java:681) > at > org.apache.ignite.internal.IgniteKernal.startManager(IgniteKernal.java:1571) > at > org.apache.ignite.internal.IgniteKernal.start(IgniteKernal.java:901) > at > org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start0(IgnitionEx.java:1739) > at > org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start(IgnitionEx.java:1589) > at org.apache.ignite.internal.IgnitionEx.start0(IgnitionEx.java:1042) > at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:549) > at > org.apache.ignite.internal.processors.platform.PlatformAbstractBootstrap.start(PlatformAbstractBootstrap.java:43) > at > org.apache.ignite.internal.processors.platform.PlatformIgnition.start(PlatformIgnition.java:76) > Caused by: class org.apache.ignite.spi.IgniteSpiException: SPI parameter > failed condition check: sockTimeout > 0 > at > org.apache.ignite.spi.IgniteSpiAdapter.assertParameter(IgniteSpiAdapter.java:344) > at > org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi.spiStart(TcpDiscoverySpi.java:1757) > at > org.apache.ignite.internal.managers.GridManagerAdapter.startSpi(GridManagerAdapter.java:267) > ... 9 more > [15:17:45,584][SEVERE][main][IgniteKernal%grid-0] 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:1576) > at > org.apache.ignite.internal.IgniteKernal.start(IgniteKernal.java:901) > at > org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start0(IgnitionEx.java:1739) > at > org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start(IgnitionEx.java:1589) > at org.apache.ignite.internal.IgnitionEx.start0(IgnitionEx.java:1042) > at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:549) > at > org.apache.ignite.internal.processors.platform.PlatformAbstractBootstrap.start(PlatformAbstractBootstrap.java:43) > at > org.apache.ignite.internal.processors.platform.PlatformIgnition.start(PlatformIgnition.java:76) > Caused by: class org.apache.ignite.IgniteCheckedException: Failed to start > SPI: TcpDiscoverySpi [addrRslvr=null, sockTimeout=-300, ackTimeout=5000, > reconCnt=10, maxAckTimeout=60, forceSrvMode=false, > clientReconnectDisabled=false] > at > org.apache.ignite.internal.managers.GridManagerAdapter.startSpi(GridManagerAdapter.java:270) > at > org.apache.ignite.internal.managers.discovery.GridDiscoveryManager.start(GridDiscoveryManager.java:681) > at > org.apache.ignite.internal.IgniteKernal.startManager(IgniteKernal.java:1571) > ... 7 more > Caused by: class org.apache.ignite.spi.IgniteSpiException: SPI parameter > failed condition check: sockTimeout > 0 > at > org.apache.ignite.spi.IgniteSpiAdapter.assertParameter(IgniteSpiAdapter.java:344) > at > org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi.spiStart(TcpDiscoverySpi.java:1757) > at > org.apache.ignite.internal.managers.GridManagerAdapter.startSpi(GridManagerAdapter.java:267) > ... 9 more > [15:17:45,594][SEVERE][main][IgniteKernal%grid-0] Failed to stop component > (ignoring):
[jira] [Commented] (IGNITE-3514) CPP: JVM crash on "Failed to start SPI" exception.
[ https://issues.apache.org/jira/browse/IGNITE-3514?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15754413#comment-15754413 ] Igor Sapego commented on IGNITE-3514: - Pavel, OK, I did not describe an issue and solution yesterday, this is my fault. The issue is that we tried to delete the same value twice on failure - first in {{IgniteEnvironment}}, when receiving `ON_STOP` message from Java, and then in "else" branch, which handles node start failure. So I have removed the second delete, which solved the issue. You are also right about the test. I'm going to add it. > CPP: JVM crash on "Failed to start SPI" exception. > -- > > Key: IGNITE-3514 > URL: https://issues.apache.org/jira/browse/IGNITE-3514 > Project: Ignite > Issue Type: Bug > Components: platforms >Affects Versions: 1.6 >Reporter: Igor Sapego >Assignee: Igor Sapego > Labels: cpp > Fix For: 2.0 > > > On invalid {{discoverySpi}} configuration JVM may crash (i.e. specify > negative {{socketTimeout}}). This is probably caused by the attempted call on > some platform callback which is null in C++. > {noformat} > Failed to start manager: GridManagerAdapter [enabled=true, > name=o.a.i.i.managers.discovery.GridDiscoveryManager] > class org.apache.ignite.IgniteCheckedException: Failed to start SPI: > TcpDiscoverySpi [addrRslvr=null, sockTimeout=-300, ackTimeout=5000, > reconCnt=10, maxAckTimeout=60, forceSrvMode=false, > clientReconnectDisabled=false] > at > org.apache.ignite.internal.managers.GridManagerAdapter.startSpi(GridManagerAdapter.java:270) > at > org.apache.ignite.internal.managers.discovery.GridDiscoveryManager.start(GridDiscoveryManager.java:681) > at > org.apache.ignite.internal.IgniteKernal.startManager(IgniteKernal.java:1571) > at > org.apache.ignite.internal.IgniteKernal.start(IgniteKernal.java:901) > at > org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start0(IgnitionEx.java:1739) > at > org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start(IgnitionEx.java:1589) > at org.apache.ignite.internal.IgnitionEx.start0(IgnitionEx.java:1042) > at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:549) > at > org.apache.ignite.internal.processors.platform.PlatformAbstractBootstrap.start(PlatformAbstractBootstrap.java:43) > at > org.apache.ignite.internal.processors.platform.PlatformIgnition.start(PlatformIgnition.java:76) > Caused by: class org.apache.ignite.spi.IgniteSpiException: SPI parameter > failed condition check: sockTimeout > 0 > at > org.apache.ignite.spi.IgniteSpiAdapter.assertParameter(IgniteSpiAdapter.java:344) > at > org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi.spiStart(TcpDiscoverySpi.java:1757) > at > org.apache.ignite.internal.managers.GridManagerAdapter.startSpi(GridManagerAdapter.java:267) > ... 9 more > [15:17:45,584][SEVERE][main][IgniteKernal%grid-0] 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:1576) > at > org.apache.ignite.internal.IgniteKernal.start(IgniteKernal.java:901) > at > org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start0(IgnitionEx.java:1739) > at > org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start(IgnitionEx.java:1589) > at org.apache.ignite.internal.IgnitionEx.start0(IgnitionEx.java:1042) > at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:549) > at > org.apache.ignite.internal.processors.platform.PlatformAbstractBootstrap.start(PlatformAbstractBootstrap.java:43) > at > org.apache.ignite.internal.processors.platform.PlatformIgnition.start(PlatformIgnition.java:76) > Caused by: class org.apache.ignite.IgniteCheckedException: Failed to start > SPI: TcpDiscoverySpi [addrRslvr=null, sockTimeout=-300, ackTimeout=5000, > reconCnt=10, maxAckTimeout=60, forceSrvMode=false, > clientReconnectDisabled=false] > at > org.apache.ignite.internal.managers.GridManagerAdapter.startSpi(GridManagerAdapter.java:270) > at > org.apache.ignite.internal.managers.discovery.GridDiscoveryManager.start(GridDiscoveryManager.java:681) > at > org.apache.ignite.internal.IgniteKernal.startManager(IgniteKernal.java:1571) > ... 7 more > Caused by: class org.apache.ignite.spi.IgniteSpiException: SPI parameter > failed condition check: sockTimeout > 0 > at >
[jira] [Commented] (IGNITE-3514) CPP: JVM crash on "Failed to start SPI" exception.
[ https://issues.apache.org/jira/browse/IGNITE-3514?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15753812#comment-15753812 ] Pavel Tupitsyn commented on IGNITE-3514: Not sure I understand the fix. Is there a test to check that invalid configuration is handled gracefully? > probably caused by the attempted call on some platform callback which is null > in C++ In such cases {{ThrowOnMissingHandler}} is called, so we would see that in the log. > CPP: JVM crash on "Failed to start SPI" exception. > -- > > Key: IGNITE-3514 > URL: https://issues.apache.org/jira/browse/IGNITE-3514 > Project: Ignite > Issue Type: Bug > Components: platforms >Affects Versions: 1.6 >Reporter: Igor Sapego >Assignee: Pavel Tupitsyn > Labels: cpp > Fix For: 2.0 > > > On invalid {{discoverySpi}} configuration JVM may crash (i.e. specify > negative {{socketTimeout}}). This is probably caused by the attempted call on > some platform callback which is null in C++. > {noformat} > Failed to start manager: GridManagerAdapter [enabled=true, > name=o.a.i.i.managers.discovery.GridDiscoveryManager] > class org.apache.ignite.IgniteCheckedException: Failed to start SPI: > TcpDiscoverySpi [addrRslvr=null, sockTimeout=-300, ackTimeout=5000, > reconCnt=10, maxAckTimeout=60, forceSrvMode=false, > clientReconnectDisabled=false] > at > org.apache.ignite.internal.managers.GridManagerAdapter.startSpi(GridManagerAdapter.java:270) > at > org.apache.ignite.internal.managers.discovery.GridDiscoveryManager.start(GridDiscoveryManager.java:681) > at > org.apache.ignite.internal.IgniteKernal.startManager(IgniteKernal.java:1571) > at > org.apache.ignite.internal.IgniteKernal.start(IgniteKernal.java:901) > at > org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start0(IgnitionEx.java:1739) > at > org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start(IgnitionEx.java:1589) > at org.apache.ignite.internal.IgnitionEx.start0(IgnitionEx.java:1042) > at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:549) > at > org.apache.ignite.internal.processors.platform.PlatformAbstractBootstrap.start(PlatformAbstractBootstrap.java:43) > at > org.apache.ignite.internal.processors.platform.PlatformIgnition.start(PlatformIgnition.java:76) > Caused by: class org.apache.ignite.spi.IgniteSpiException: SPI parameter > failed condition check: sockTimeout > 0 > at > org.apache.ignite.spi.IgniteSpiAdapter.assertParameter(IgniteSpiAdapter.java:344) > at > org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi.spiStart(TcpDiscoverySpi.java:1757) > at > org.apache.ignite.internal.managers.GridManagerAdapter.startSpi(GridManagerAdapter.java:267) > ... 9 more > [15:17:45,584][SEVERE][main][IgniteKernal%grid-0] 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:1576) > at > org.apache.ignite.internal.IgniteKernal.start(IgniteKernal.java:901) > at > org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start0(IgnitionEx.java:1739) > at > org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.start(IgnitionEx.java:1589) > at org.apache.ignite.internal.IgnitionEx.start0(IgnitionEx.java:1042) > at org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:549) > at > org.apache.ignite.internal.processors.platform.PlatformAbstractBootstrap.start(PlatformAbstractBootstrap.java:43) > at > org.apache.ignite.internal.processors.platform.PlatformIgnition.start(PlatformIgnition.java:76) > Caused by: class org.apache.ignite.IgniteCheckedException: Failed to start > SPI: TcpDiscoverySpi [addrRslvr=null, sockTimeout=-300, ackTimeout=5000, > reconCnt=10, maxAckTimeout=60, forceSrvMode=false, > clientReconnectDisabled=false] > at > org.apache.ignite.internal.managers.GridManagerAdapter.startSpi(GridManagerAdapter.java:270) > at > org.apache.ignite.internal.managers.discovery.GridDiscoveryManager.start(GridDiscoveryManager.java:681) > at > org.apache.ignite.internal.IgniteKernal.startManager(IgniteKernal.java:1571) > ... 7 more > Caused by: class org.apache.ignite.spi.IgniteSpiException: SPI parameter > failed condition check: sockTimeout > 0 > at > org.apache.ignite.spi.IgniteSpiAdapter.assertParameter(IgniteSpiAdapter.java:344) > at >