в чем причина дамп памяти? стек показывает из оракула lib

0

У меня есть coredmp, где все потоки стека выглядят нормально, но один стек показывает это. Может ли кто-нибудь сказать мне возможную причину этого? я вижу, что выход вызывается из oracle libs, это проблема оракула? Может ли кто-нибудь вести меня, когда это может произойти?

 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. Вот еще одна qaru.site/questions/8313012/... где стек похож, но не такой же, но до сих пор нет четкого ответа
  3. Ссылка говорит об ошибке orable, это то же самое?
  • 0
    ЧТО-ТО в коде, называемом abort, - это, как правило, когда приложение достигает утверждения или какого-либо другого условия, когда программист думает: «Этого не должно быть, лучше остановиться, прежде чем что-то пойдет не так». Обычно это делается с помощью подходящего сообщения для stderr или stdout, говорящего «Черт, я не ожидал, что X> 1000» или чего-то подобного.
  • 0
    @ Матс Петерссон: я не могу увидеть ни одного "прерывания" вызова в трассировке.
Показать ещё 5 комментариев
Теги:
coredump
oracle11g

1 ответ

4
Лучший ответ

Похож на вопрос о оракуле 11g.

  1. Начиная с Oracle 11g Diagnostic Repositories включаются по умолчанию. Автоматический диагностический репозиторий (ADR) Параметры, такие как DIAG_SIGHANDLER_ENABLED, DIAG_ADR_ENABLED, DIAG_DDE_ENABLED, в основном устанавливаются в SQLNET.ORA.

Если DIAG_SIGHANDLER_ENABLED заставит всю диагностику записываться, такую как журналы предупреждений, файлы трассировки, дампы приложений, и это становится перегрузкой, и иногда приложение натыкается.

  1. Чтобы отключить обработчик сигнала и снова включить стандартную обработку отказа операционной системы, поместите следующую настройку параметров в файле sqlnet.ora на стороне клиента или на стороне сервера в каталоге $ ORACLE_HOME/network/admin.

    DIAG_ADR_ENABLED=OFF
    DIAG_SIGHANDLER_ENABLED=FALSE
    DIAG_DDE_ENABLED=FALSE
    

По умолчанию для этого параметра установлено значение true.

После внесения любых таких изменений в ADR, то есть, отключив DIAG_SIGHANDLER_ENABLED, DIAG_ADR_ENABLED, DIAG_DDE_ENABLED, рекомендуется перезапустить приложение после настройки в sqlnet.ora.

  1. Отключение параметров ADR не должно влиять ни на ваше приложение, ни на базу данных.
  • 0
    Огромное спасибо !!!, я потратил много месяцев на эту проблему и думал, что это ошибка GDB, чтобы показать строку сбоя в моем файле Pro * C.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню