GDB执行时,Apache IGNITE C 客户端应用程序具有许多细分故障

Apache Ignite C++ Client Application has many Segmentation Fault when It executed by GDB

本文关键字:应用程序 许多 故障 细分 客户端 执行 Apache IGNITE GDB      更新时间:2023-10-16

我正在使用IGNITE C 客户端(Apache-ignite-2.8.0.0.20190213)。

在编译IGNITE C 应用程序时,它没有问题。但是,如果它是由GDB开始的,则会发生分割故障。

我在没有GDB的情况下执行了我的应用程序,这也没有问题。

我以前看到过这样的问题。

如何编译CMAKE上的IGNITE应用?

它是否需要其他一些JVM选项或环境值?

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);

错误:

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)

很难说,我的建议是将-Xint添加到JVM选项中以避免JIT。辩论者可能会因JIT而感到困惑。