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

小结:

相关推荐
天空'之城10 分钟前
Linux 系统编程 10:线程同步
linux·开发语言·系统编程·线程同步
河铃旅鹿29 分钟前
在Ubuntu系统上为Android交叉编译OpenSSL
android·linux·ubuntu
长孙豪翔39 分钟前
引发事件的问题
java·linux·数据库
小张成长计划..43 分钟前
【Linux】7:第一个系统程序-进度条
linux·运维·服务器
枳实-叶1 小时前
【Linux驱动开发】第23天:spi_driver 的 probe / remove 函数实现规范
linux·驱动开发·c#
李子琪。1 小时前
云计算虚拟化技术全解析:从理论到实践
linux·centos·云计算
wuminyu1 小时前
markword在高并发场景下变化剖析
java·linux·c语言·jvm·c++
Cloud_Shy6181 小时前
Linux 用户管理知识与应用实践(二:用户相关命令与示例)
linux·运维·服务器·测试用例
小生不才yz1 小时前
Shell脚本精读 · S08-03 | 脚本模块化:`source` 与多文件组织
linux
想你依然心痛1 小时前
AtomCode在算法竞赛中的实战体验:LeetCode周赛辅助编程
linux·算法·leetcode