embedit报错

说明:

  embedit工具运行在一批机器总是报错,报错信息如下:

bash 复制代码
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00007f650df1bf05, pid=4853, tid=4854
#
# JRE version: OpenJDK Runtime Environment (11.0.2+9) (build 11.0.2+9)
# Java VM: OpenJDK 64-Bit Server VM (11.0.2+9, mixed mode, tiered, compressed oops, g1 gc, linux-amd64)
# Problematic frame:
# C  [libcrypto.so.1.0.2k+0x70f05]  OPENSSL_ia32_cpuid+0x5
#
# Core dump will be written. Default location: Core dumps may be processed with "/usr/libexec/abrt-hook-ccpp %s %c %p %u %g %t e %P %I %h" (or dumping to /home/tools/core.4853)
#
# 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.
#

---------------  S U M M A R Y ------------

Command Line: -Xmx512m -Djava.library.path=/cadtools/synopsys/embedit-T-2022.09-SP1/linux64/lib -Djava.util.prefs.systemRoot=/home/tools/.java -Dsun.java2d.pmoffscreen=true /cadtools/synopsys/embedit
-T-2022.09-SP1/lib/classes/integrator.jar -h /cadtools/synopsys/embedit-T-2022.09-SP1

Host: Intel(R) Xeon(R) Gold 6248 CPU @ 2.50GHz, 16 cores, 62G, Red Hat Enterprise Linux Server release 7.9 (Maipo)
Time: Thu Jun  4 18:18:27 2026 CST elapsed time: 0 seconds (0d 0h 0m 0s)

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

Current thread (0x00007f6504011000):  JavaThread "main" [_thread_in_native, id=4854, stack(0x00007f650e695000,0x00007f650e796000)]

Stack: [0x00007f650e695000,0x00007f650e796000],  sp=0x00007f650e792f48,  free space=1015k
Native frames: (J=compiled Java code, A=aot compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [libcrypto.so.1.0.2k+0x70f05]  OPENSSL_ia32_cpuid+0x5

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j  java.lang.ClassLoader$NativeLibrary.load0(Ljava/lang/String;Z)Z+0 java.base@11.0.2
j  java.lang.ClassLoader$NativeLibrary.load()Z+53 java.base@11.0.2
j  java.lang.ClassLoader$NativeLibrary.loadLibrary(Ljava/lang/Class;Ljava/lang/String;Z)Z+216 java.base@11.0.2
j  java.lang.ClassLoader.loadLibrary0(Ljava/lang/Class;Ljava/io/File;)Z+46 java.base@11.0.2
j  java.lang.ClassLoader.loadLibrary(Ljava/lang/Class;Ljava/lang/String;Z)V+312 java.base@11.0.2
j  java.lang.Runtime.loadLibrary0(Ljava/lang/Class;Ljava/lang/String;)V+54 java.base@11.0.2
j  java.lang.System.loadLibrary(Ljava/lang/String;)V+7 java.base@11.0.2
j  integrator.system.Project.<clinit>()V+2
v  ~StubRoutines::call_stub
j  integrator.system.ProjectProxy.<init>()V+126
j  integrator.system.ProjectProxy.getInstance(Ljava/lang/String;)Lintegrator/system/ProjectProxy;+33
j  integrator.main.Q.main([Ljava/lang/String;)V+101
v  ~StubRoutines::call_stub

siginfo: si_signo: 11 (SIGSEGV), si_code: 2 (SEGV_ACCERR), si_addr: 0x00007f649f667b38

Register to memory mapping:

根据报错信息,尝试更新java版本还是报错

崩溃源头函数:OPENSSL_ia32_cpuid()

OpenSSL 1.0.2k内部硬编码汇编,主动调用 CPU 的 CPUID 指令去探测 CPU 特性(SSE/AES-NI/AVX 等):

老 OpenSSL 在 Cascade Lake(Xeon 6248)新一代 CPU 上:CPU 新增的扩展寄存器 / 标识位超出 1.0.2k 代码预设范围,汇编越界访问内存 → SIGSEGV (11 段错误),日志里:

plaintext

bash 复制代码
C  [libcrypto.so.1.0.2k+0x70f05]  OPENSSL_ia32_cpuid+0x5
siginfo: si_signo: 11 (SIGSEGV)

解决:

OPENSSL_ia32cap=0x0 ,强制把 OpenSSL 识别到的 CPU 硬件能力掩码置 0,跳过原生 cpuid 汇编探测逻辑,不走出错的OPENSSL_ia32_cpuid代码。

bash 复制代码
setenv OPENSSL_ia32cap 0x0

小结:

相关推荐
c2385618 小时前
Linux C++ 进度条进阶美化与工程化封装
linux·运维·服务器
凡人叶枫21 小时前
Effective C++ 条款17:以独立语句将 newed 对象置入智能指针
java·linux·开发语言·c++·算法
RisunJan21 小时前
Linux命令-pgrep (通过进程名查找进程 ID)
linux·运维
信创工程师-小杨1 天前
Linux内网环境如何解决依赖的问题
linux·运维·服务器
设计师小聂!1 天前
宝塔 Linux 面板保姆级教程
linux·mysql·开源·运维开发
不吃土豆的马铃薯1 天前
C++ 高性能网络缓冲区 Buffer 源码解析
linux·服务器·开发语言·网络·c++
java知路1 天前
linux yum 下载docker安装包及依赖安装包,并离线安装
linux·运维·docker
fanged1 天前
设备树学习2--一个DTBO实验
linux·嵌入式开发
星间都市山脉1 天前
Android STS(Security Test Suite)完整介绍与测试流程
android·java·linux·windows·ubuntu·android studio·androidx
qq_163135751 天前
Linux 【02-tac命令超详细教程】
linux