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

小结:

相关推荐
额额额对了14 分钟前
Linux 数据库开发实战:使用 C 语言与 SQLite3 构建轻量级终端词典
linux·数据库·oracle
爱笑鱼18 分钟前
Android 系统启动机制(六):Zygote 创建 App 为什么走 Socket?哪些是源码事实,哪些是架构解释?
android·linux
2601_9622998830 分钟前
Linux下运行Python脚本
linux·python·ubuntu·脚本·命令
Zenova EdgeOS35 分钟前
Linux eBPF 工业边缘性能观测实战
linux·服务器·网络
skywalk81631 小时前
通过下载Ubuntu ova文件在Virtual Box快速安装ubuntu
linux·运维·ubuntu·virtualbox
wuminyu1 小时前
JVM锁膨胀与Futex源码解析
java·linux·c语言·jvm·c++
斑马1391 小时前
Linux软件编程学习笔记(十一)——HTTP协议
linux·笔记·学习
OpenPomeloxCommunity1 小时前
Linux驱动基础(一):模块机制的设计与实现
linux
Shadow(⊙o⊙)2 小时前
Linux网络——文件与网络的连接桥梁struct sock {
linux·运维·网络
新时代牛马2 小时前
Linux 性能调优与追踪完整篇:ftrace、perf、eBPF从采样到落地验证
linux·运维·服务器