【问题标题】:what is the reason for core dump? stack shows from oracle lib核心转储的原因是什么?来自 oracle lib 的堆栈显示
【发布时间】:2015-02-11 08:01:49
【问题描述】:

我有一个 coredmp,所有线程堆栈看起来都很正常,但一个堆栈显示如下。谁能告诉我这可能的原因?我可以看到正在从 oracle 库调用 exit,这是 oracle 的问题吗?发生这种情况时,谁能指导我?

 Thread 3 (process 26454):
#0  0x00002b803ceb54a8 in exit () from /lib64/libc.so.6
#1  0x00002b803bbe93f5 in skgdbgcra () from /home/oracle/product/11g/lib/libclntsh.so.11.1
#2  0x00002b803be9cdec in kpeDbgCrash () from /home/oracle/product/11g/lib/libclntsh.so.11.1
#3  0x00002b803be9c627 in kpeDbgSignalHandler () from /home/oracle/product/11g/lib/libclntsh.so.11.1
#4  0x00002b803bbe64b1 in skgesig_sigactionHandler () from /home/oracle/product/11g/lib/libclntsh.so.11.1
#5  <signal handler called>


> Program terminated with signal 6, Aborted.

注意:

  1. 在投反对票之前,你们能告诉我为什么投反对票吗?我真的不知道要检查什么
  2. 这是另一个stackoverflow link,其中堆栈相似但不一样,但仍然没有明确的答案
  3. Link 谈论 orable bug,是不是同样的问题?

【问题讨论】:

  • 代码中的某些内容称为 abort - 这通常是当应用程序遇到断言或其他程序员认为“这不应该发生的情况,我最好在出现更多错误之前停止”的情况。通常这是通过向 stderr 或 stdout 发送合适的消息来完成的,说“哎呀,我没想到 X > 1000”或类似的东西。
  • @Mats Petersson 我无法在跟踪中看到任何“中止”调用。
  • 上面写着“信号6”,这就是Linux中止信号...
  • @MatsPetersson 我检查了 va/log/messages 没有带有 -6 的 kill 命令,我还检查了历史记录我没有找到 kill -6。
  • 不,它可能是程序本身发出的。我在您的日志中看到您提供了“程序以信号 6 终止,已中止”。 - 当然,我不知道这是怎么发生的,但它可能不会在 /var/log/messages 中 - 只会有内核发出的信号,而不是一次在应用程序中引起的。

标签: c++ oracle11g coredump


【解决方案1】:

看起来这是 oracle 11g 上的一个问题。

  1. 从 Oracle 11g 开始,诊断信息库默认开启。自动诊断存储库 (ADR) 参数,例如 DIAG_SIGHANDLER_ENABLEDDIAG_ADR_ENABLEDDIAG_DDE_ENABLED,大多在 SQLNET.ORA 中设置。

拥有DIAG_SIGHANDLER_ENABLED 将强制写入所有诊断信息,例如警报日志、跟踪文件、应用程序转储,这会导致过载,有时应用程序会出错。

  1. 要关闭信号处理程序并重新启用标准操作系统故障处理,请将以下参数设置放在 $ORACLE_HOME/network/admin 目录下的客户端或服务器端 sqlnet.ora 文件中。

    DIAG_ADR_ENABLED=OFF
    DIAG_SIGHANDLER_ENABLED=FALSE
    DIAG_DDE_ENABLED=FALSE
    

默认情况下,此参数设置为 true。

对ADR进行任何此类更改后,即关闭DIAG_SIGHANDLER_ENABLEDDIAG_ADR_ENABLEDDIAG_DDE_ENABLED,建议在sqlnet.ora中进行设置后重新启动应用程序。

  1. 关闭 ADR 参数应该不会对您的应用程序或数据库造成任何影响。

【讨论】:

  • 非常感谢!!!,已经在这个问题上花费了几个月的时间,并认为它的 gdb 错误在我的 Pro*C 文件中显示崩溃行。
猜你喜欢
  • 2017-11-11
  • 2017-12-20
  • 1970-01-01
  • 1970-01-01
  • 2011-12-13
  • 1970-01-01
  • 1970-01-01
  • 2016-10-02
  • 2010-11-01
相关资源
最近更新 更多