Автор Тема: libcertex-csp_r.so.5.2.13.0 JRE fatal error  (Прочитано 666 раз)

0 Пользователей и 1 Гость просматривают эту тему.

misha_4ever

  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
libcertex-csp_r.so.5.2.13.0 JRE fatal error
« : 12 Март 2018, 12:52:30 »
Добрый день!

В общем случае функционал ЭЦП работает корректно, но в иногда, при попытке инициализации new GammaTechProvider() возникает фатальная ошибка на уровне JRE и вся java падает. Подскажите, в чем может быть проблема?

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00007f62fe9c1701, pid=22184, tid=140066421548800
#
# JRE version: Java(TM) SE Runtime Environment (8.0_51-b31) (build 1.8.0_51-b31)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.51-b03 mixed mode linux-amd64 compressed oops)
# Problematic frame:
# C  [libcertex-csp_r.so.5.2.13.0+0x33701]  enc_cfb_encrypt(EncCtx*, unsigned char*, unsigned char*, unsigned long)+0x621
#
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.java.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#

---------------  T H R E A D  ---------------

Current thread (0x00007f6360092800):  JavaThread "http-/0.0.0.0:8080-46" daemon [_thread_in_native, id=22503, stack(0x00007f63c13d2000,0x00007f63c14d3000)]

siginfo: si_signo: 11 (SIGSEGV), si_code: 1 (SEGV_MAPERR), si_addr: 0x00007f40c14cb1f0

Stack: [0x00007f63c13d2000,0x00007f63c14d3000],  sp=0x00007f63c14ca6f0,  free space=993k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [libcertex-csp_r.so.5.2.13.0+0x33701]  enc_cfb_encrypt(EncCtx*, unsigned char*, unsigned char*, unsigned long)+0x621

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j  java.lang.ClassLoader$NativeLibrary.load(Ljava/lang/String;Z)V+0
j  java.lang.ClassLoader.loadLibrary0(Ljava/lang/Class;Ljava/io/File;)Z+328
j  java.lang.ClassLoader.loadLibrary(Ljava/lang/Class;Ljava/lang/String;Z)V+48
j  java.lang.Runtime.load0(Ljava/lang/Class;Ljava/lang/String;)V+57
j  java.lang.System.load(Ljava/lang/String;)V+7
j  kz.gamma.tumarcsp.LibraryWrapper.initialize(Ljava/lang/String;)V+377
j  kz.gamma.tumarcsp.TumarCspFunctions.initialize(Ljava/lang/String;)V+1
j  kz.gamma.jce.provider.GammaTechProvider.<clinit>()V+35
v  ~StubRoutines::call_stub
j  outsystems.noselectronicdigitalsignature.actions.ActSignData.signApplication(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;+5
j  outsystems.noselectronicdigitalsignature.actions.ActSignData.mosSignData(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Loutsystems/noselectronicdigitalsignature/actions/ActSignData;+18
j  osapm_cmn_data.referencesproxy.rssextensionelectronicdigitalsignature.actions.ActSignData.mosSignData(Loutsystems/hubedition/runtimeplatform/HeContext;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Losapm_cmn_data/referencesproxy/rssextensionelectronicdigitalsignature/actions/ActSignData;+25



Как я могу вложить файл с полными логами (500кб)? Ругается что "Нет доступа к папке для загрузки вложений!".
« Последнее редактирование: 12 Март 2018, 12:57:44 от misha_4ever »

Sergey

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 639
    • Просмотр профиля
Re: libcertex-csp_r.so.5.2.13.0 JRE fatal error
« Ответ #1 : 13 Март 2018, 09:41:57 »
Добрый день.

Для выяснения причины ошибки необходимы следующие данные:
1. Операционная система, полное наименование (uname -a).
2. Java приложение запускается несколько раз (метод new GammaTechProvider() можно вызывать только 1 раз на весь java process).

Полный dump можно выложить на какой нибудь файл хостинг (например dropbox, mail.ru, yandex.ru) и дать на форуме ссылку.


misha_4ever

  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
Re: libcertex-csp_r.so.5.2.13.0 JRE fatal error
« Ответ #2 : 14 Март 2018, 12:06:13 »
Добрый день!
Ссылка на полный дамп, включая uname (внизу файла)
https://cloud.mail.ru/public/EGxY/WtEEvWyZj

Скорее всего ваш второй пункт решит проблему, т.к. у нас обработка ЭЦП в статическом классе и new GammaTechProvider() мог вызываться несколько раз.
Заменили голую реализацию new GammaTechProvider() на
for (java.security.Provider provider : Security.getProviders()) {
   hasProvider = (provider.getClass().equals(GammaTechProvider.class) || hasProvider)
}
if (!hasProvider)
   Sevurity.addProvider(new GammaTechProvider());
//дальше остальная обработка

Будем наблюдать, если после обновления кода проблема повторится - отпишусь.

Sergey

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 639
    • Просмотр профиля
Re: libcertex-csp_r.so.5.2.13.0 JRE fatal error
« Ответ #3 : 15 Март 2018, 10:35:54 »
По дампу видно что работа с криптопровайдером идет в нитках, можно уточнить:
1. Количество ниток (приблизительное) одновременных операций.
2. Какие операции вызываются.

Для работы в нитках необходимо соблюдать некоторые правила, возможно и из-за этого также могут возникать проблемы.