0

I am using a Ignite C++ Client(apache-ignite-2.8.0.20190213).

It has not a problem while compiling Ignite C++ Application. but if It started by gdb, It occurs Segmentation Fault.

I executed my app without gdb and It has not a problem.

I saw a problem like this before.

how to compile Ignite application on CMake?

Does it need some other JVM options or environment values?

ignite::IgniteConfiguration cfg;
cfg.jvmOpts.push_back("-Djava.net.preferIPv4Stack=true");
cfg.springCfgPath = "/myapp/config/ignite.xml"; 
cfg.jvmLibPath = "//usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server/libjvm.so";
cfg.igniteHome = "/root/ignite";
cfg.jvmClassPath = "/usr/lib/jvm/java-8-openjdk-amd64/lib";

// Start a node.
auto ignite = ignite::Ignition::Start(cfg);

Errors:

Signal: SIGSEGV (Segmentation fault)
Feb 19, 2019 3:15:55 PM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
INFO: Loading XML bean definitions from URL [file:/myapp/config/ignite.xml]
Feb 19, 2019 3:15:55 PM org.springframework.context.support.AbstractApplicationContext prepareRefresh
INFO: Refreshing org.springframework.context.support.GenericApplicationContext@5b1d2887: startup date [Tue Feb 19 15:15:55 UTC 2019]; root of context hierarchy
[15:15:55]    __________  ________________ 
[15:15:55]   /  _/ ___/ |/ /  _/_  __/ __/ 
[15:15:55]  _/ // (7 7    // /  / / / _/   
[15:15:55] /___/\___/_/|_/___/ /_/ /___/  
[15:15:55] 
[15:15:55] ver. 2.8.0.20190216#20190219-sha1:DEV
[15:15:55] 2019 Copyright(C) Apache Software Foundation
[15:15:55] 
[15:15:55] Ignite documentation: http://ignite.apache.org
[15:15:55] 
[15:15:55] Quiet mode.
[15:15:55]   ^-- Logging to file '/root/ignite/work/log/ignite-2f8a0281.0.log'
[15:15:55]   ^-- Logging by 'JavaLogger [quiet=true, config=null]'
[15:15:55]   ^-- To see **FULL** console log here add -DIGNITE_QUIET=false or "-v" to ignite.{sh|bat}
[15:15:55] 
[15:15:55] OS: Linux 4.15.0-20-generic amd64
[15:15:55] VM information: OpenJDK Runtime Environment 1.8.0_191-8u191-b12-2ubuntu0.16.04.1-b12 Oracle Corporation OpenJDK 64-Bit Server VM 25.191-b12
Signal: SIGSEGV (Segmentation fault)
[15:16:06] Configured plugins:
[15:16:06]   ^-- None
[15:16:06] 
[15:16:06] Configured failure handler: [hnd=StopNodeOrHaltFailureHandler [tryStop=false, timeout=0, super=AbstractFailureHandler [ignoredFailureTypes=UnmodifiableSet [SYSTEM_WORKER_BLOCKED, SYSTEM_CRITICAL_OPERATION_TIMEOUT]]]]
[15:16:06] Message queue limit is set to 0 which may lead to potential OOMEs when running cache operations in FULL_ASYNC or PRIMARY_SYNC modes due to message queues growth on sender and receiver sides.
[15:16:06] Security status [authentication=off, tls/ssl=off]
Signal: SIGSEGV (Segmentation fault)
Signal: SIGSEGV (Segmentation fault)

1 Answers1

0

It's hard to say, my recommendation will be to add -Xint to JVM options to avoid JIT. Debuggers may get confused by JIT.

alamar
  • 18,729
  • 4
  • 64
  • 97