JDK bug:ciObjectFactory::create_new_metadata
文章目录
- 1、问题
- 2.详细日志
- 3.JDK:bug
- 最终bug链接:
- 京东遇到过类似bug
- 各位大佬如果有更详细的解答可以留言。
1、问题
Problematic frame: V [libjvm.so+0x438067] ciObjectFactory::create_new_metadata(Metadata*)+0x327
关键字还是ciObjectFactory::create_new_metadata(Metadata)*
2.详细日志
#
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x00007f49157f4067, pid=17437, tid=0x00007f48b8ffe700
#
# JRE version: Java(TM) SE Runtime Environment (8.0_92-b14) (build 1.8.0_92-b14)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.92-b14 mixed mode linux-amd64 compressed oops)
# Problematic frame:
# V [libjvm.so+0x438067] ciObjectFactory::create_new_metadata(Metadata*)+0x327
#
# 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
#--------------- T H R E A D ---------------Current thread (0x00007f4910806800): JavaThread "C1 CompilerThread3" daemon [_thread_in_vm, id=17480, stack(0x00007f48b8efe000,0x00007f48b8fff000)]siginfo: si_signo: 11 (SIGSEGV), si_code: 1 (SEGV_MAPERR), si_addr: 0x0000000000000013Registers:
RAX=0x000000000000000b, RBX=0x000000000000008a, RCX=0x00000037800182a0, RDX=0x00007f48b8ffea20
RSP=0x00007f48b8ffc300, RBP=0x00007f48b8ffc370, RSI=0x00007f48e0c25ce8, RDI=0x00007f48e0c25ce8
R8 =0x0000000000000089, R9 =0x00007f491638e200, R10=0x0000000000000000, R11=0x000000377f75a290
R12=0x00007f48e0c25ce8, R13=0x00007f48a9ad7240, R14=0x00007f4910806800, R15=0x00007f48a9ad7240
RIP=0x00007f49157f4067, EFLAGS=0x0000000000010202, CSGSFS=0x0000000000000033, ERR=0x0000000000000004TRAPNO=0x000000000000000eTop of Stack: (sp=0x00007f48b8ffc300)
0x00007f48b8ffc300: 00007f48a8853080 00007f48b8ffc420
0x00007f48b8ffc310: 00007f48a88513d0 00007f48b8ffd9f0
0x00007f48b8ffc320: 00007f4910008660 00007f49106c4150
0x00007f48b8ffc330: 0000000000000001 00007f48b8ffc400
0x00007f48b8ffc340: 00007f4910806800 000000000000008a
0x00007f48b8ffc350: 00007f48e0c25ce8 00007f48a9ad7240
0x00007f48b8ffc360: 000000000000008a 00007f48a88c38b0
0x00007f48b8ffc370: 00007f48b8ffc3b0 00007f49157f4495
0x00007f48b8ffc380: 00007f48b8ffc3c0 0000000000000000
0x00007f48b8ffc390: 00007f48e0c25ce8 0000000000000000
0x00007f48b8ffc3a0: 00007f491633aaa0 00007f48a88c38b0
0x00007f48b8ffc3b0: 00007f48b8ffc3f0 00007f49157ec167
0x00007f48b8ffc3c0: 0000000000000010 00007f48a88c38b0
0x00007f48b8ffc3d0: 00007f48a8853260 00007f48b94c5c60
0x00007f48b8ffc3e0: 00007f48b8ffc400 00007f48b94c5b30
0x00007f48b8ffc3f0: 00007f48b8ffc530 00007f49157ec478
0x00007f48b8ffc400: 00007f48e0a801c0 00007f48a88532b0
0x00007f48b8ffc410: 00000001000ef3e0 00007f48a88532b0
0x00007f48b8ffc420: 00007f4910806800 00007f48a9ad7240
0x00007f48b8ffc430: 00007f48b8ffc4b0 00007f49157f3dd5
0x00007f48b8ffc440: 00007f48a8852f20 00007f491633aaa0
0x00007f48b8ffc450: 00007f48b8ffc510 00007f48e0bca418
0x00007f48b8ffc460: 00007f48b8ffc4e0 00007f49157e22ce
0x00007f48b8ffc470: 00007f48b8ffc500 00007f48b8ffd9f0
0x00007f48b8ffc480: 00007f48a8852fe0 000000000000006f
0x00007f48b8ffc490: 00000001000ef3e0 00007f48a9ad7240
0x00007f48b8ffc4a0: 0000000000000089 00007f48a9f10ca0
0x00007f48b8ffc4b0: 00007f48b8ffc4f0 00007f49157f44ab
0x00007f48b8ffc4c0: 00007f48b8ffc4e0 0000000000000003
0x00007f48b8ffc4d0: 00000001000ef3e0 0000000000000003
0x00007f48b8ffc4e0: 0000000000000003 00007f48a88532b0
0x00007f48b8ffc4f0: 00007f48b8ffc530 00007f49157ef062 Instructions: (pc=0x00007f49157f4067)
0x00007f49157f4047: 83 c6 08 39 c7 7c e2 44 8d 48 ff 45 89 08 e9 7b
0x00007f49157f4057: fd ff ff 66 0f 1f 44 00 00 49 8b 04 24 4c 89 e7
0x00007f49157f4067: ff 50 08 84 c0 0f 84 05 fd ff ff 41 8b 44 24 08
0x00007f49157f4077: 85 c0 0f 8e f8 fc ff ff 41 f6 84 24 0e 01 00 00 Register to memory mapping:RAX=0x000000000000000b is an unknown value
RBX=0x000000000000008a is an unknown value
RCX=0x00000037800182a0: <offset 0x2182a0> in /lib64/libpthread.so.0 at 0x000000377fe00000
RDX=0x00007f48b8ffea20 is pointing into the stack for thread: 0x00007f4910806800
RSP=0x00007f48b8ffc300 is pointing into the stack for thread: 0x00007f4910806800
RBP=0x00007f48b8ffc370 is pointing into the stack for thread: 0x00007f4910806800
RSI=0x00007f48e0c25ce8 is pointing into metadata
RDI=0x00007f48e0c25ce8 is pointing into metadata
R8 =0x0000000000000089 is an unknown value
R9 =0x00007f491638e200: <offset 0xfd2200> in /opt/soft/java/jre/lib/amd64/server/libjvm.so at 0x00007f49153bc000
R10=0x0000000000000000 is an unknown value
R11=0x000000377f75a290: <offset 0x15a290> in /lib64/libc.so.6 at 0x000000377f600000
R12=0x00007f48e0c25ce8 is pointing into metadata
R13=0x00007f48a9ad7240 is an unknown value
R14=0x00007f4910806800 is a thread
R15=0x00007f48a9ad7240 is an unknown valueStack: [0x00007f48b8efe000,0x00007f48b8fff000], sp=0x00007f48b8ffc300, free space=1016k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0x438067] ciObjectFactory::create_new_metadata(Metadata*)+0x327
V [libjvm.so+0x438495] ciObjectFactory::get_metadata(Metadata*)+0x85
V [libjvm.so+0x430167] ciSpeculativeTrapData::translate_from(ProfileData const*)+0x67
V [libjvm.so+0x430478] ciMethodData::load_extra_data()+0xa8
V [libjvm.so+0x4325e8] ciMethodData::load_data()+0x268
V [libjvm.so+0x424b17] ciMethod::ensure_method_data(methodHandle)+0xa7
V [libjvm.so+0x425d67] ciMethod::ensure_method_data()+0xa7
V [libjvm.so+0x370e65] GraphBuilder::try_inline_full(ciMethod*, bool, Bytecodes::Code, Instruction*)+0x545
V [libjvm.so+0x36d2cf] GraphBuilder::try_inline(ciMethod*, bool, Bytecodes::Code, Instruction*)+0x11f
V [libjvm.so+0x36e412] GraphBuilder::invoke(Bytecodes::Code)+0xbc2
V [libjvm.so+0x36ed8d] GraphBuilder::iterate_bytecodes_for_block(int)+0x6ad
V [libjvm.so+0x37091b] GraphBuilder::iterate_all_blocks(bool)+0x14b
V [libjvm.so+0x3712b6] GraphBuilder::try_inline_full(ciMethod*, bool, Bytecodes::Code, Instruction*)+0x996
V [libjvm.so+0x36d2cf] GraphBuilder::try_inline(ciMethod*, bool, Bytecodes::Code, Instruction*)+0x11f
V [libjvm.so+0x36e412] GraphBuilder::invoke(Bytecodes::Code)+0xbc2
V [libjvm.so+0x36ed8d] GraphBuilder::iterate_bytecodes_for_block(int)+0x6ad
V [libjvm.so+0x37091b] GraphBuilder::iterate_all_blocks(bool)+0x14b
V [libjvm.so+0x3712b6] GraphBuilder::try_inline_full(ciMethod*, bool, Bytecodes::Code, Instruction*)+0x996
V [libjvm.so+0x36d2cf] GraphBuilder::try_inline(ciMethod*, bool, Bytecodes::Code, Instruction*)+0x11f
V [libjvm.so+0x36e412] GraphBuilder::invoke(Bytecodes::Code)+0xbc2
V [libjvm.so+0x36ed8d] GraphBuilder::iterate_bytecodes_for_block(int)+0x6ad
V [libjvm.so+0x37091b] GraphBuilder::iterate_all_blocks(bool)+0x14b
V [libjvm.so+0x3712b6] GraphBuilder::try_inline_full(ciMethod*, bool, Bytecodes::Code, Instruction*)+0x996
V [libjvm.so+0x36d2cf] GraphBuilder::try_inline(ciMethod*, bool, Bytecodes::Code, Instruction*)+0x11f
V [libjvm.so+0x36e412] GraphBuilder::invoke(Bytecodes::Code)+0xbc2
V [libjvm.so+0x36ed8d] GraphBuilder::iterate_bytecodes_for_block(int)+0x6ad
V [libjvm.so+0x3708c2] GraphBuilder::iterate_all_blocks(bool)+0xf2
V [libjvm.so+0x3724e7] GraphBuilder::GraphBuilder(Compilation*, IRScope*)+0x527
V [libjvm.so+0x37a817] IRScope::IRScope(Compilation*, IRScope*, int, ciMethod*, int, bool)+0x1e7
V [libjvm.so+0x37a92f] IR::IR(Compilation*, ciMethod*, int)+0x9f
V [libjvm.so+0x358edb] Compilation::build_hir()+0xdb
V [libjvm.so+0x35929e] Compilation::compile_java_method()+0x6e
V [libjvm.so+0x3593ce] Compilation::compile_method()+0x4e
V [libjvm.so+0x35973e] Compilation::Compilation(AbstractCompiler*, ciEnv*, ciMethod*, int, BufferBlob*)+0x25e
V [libjvm.so+0x35a4e9] Compiler::compile_method(ciEnv*, ciMethod*, int)+0xa9
V [libjvm.so+0x4aea9a] CompileBroker::invoke_compiler_on_method(CompileTask*)+0xc9a
V [libjvm.so+0x4afa46] CompileBroker::compiler_thread_loop()+0x5d6
V [libjvm.so+0xa6cc5f] JavaThread::thread_main_inner()+0xdf
V [libjvm.so+0xa6cd8c] JavaThread::run()+0x11c
V [libjvm.so+0x91fad8] java_start(Thread*)+0x108
C [libpthread.so.0+0x79d1]**Current CompileTask:
C1: 319967 19019 ! 3 com.mysql.jdbc.Buffer::readString (121 bytes)**--------------- P R O C E S S --------------
重点还是:Current CompileTask:
C1: 319967 19019 ! 3 com.mysql.jdbc.Buffer::readString (121 bytes)
当前任务是C1编译导致的报错、
3.JDK:bug
直接去搜索关键字:create_new_metadata,出现一下内容

最终bug链接:
https://bugs.java.com/bugdatabase/view_bug?bug_id=8156137
解释:
I tested with a fix for _previous_version_count, but put in an artificial delay for classes to move from the previous versions list to the deallocate list (simulating on_stack metadata), and I was able to get the same crash, so this is evidence that JDK-8164692 is a separate (but contributing) bug. I’m testing my proposed fix, which is to process previous versions in Klass::clean_weak_klass_links().
翻译:
InstanceKlass::_previous_version_count的问题可能是根本原因。 如果计数错误,则ClassLoaderDataGraph::do_unloading()可能会跳过调用InstanceKlass::purge_previous_versions(),从而允许ClassLoaderDataGraphKlassIteratorAtomic和G1ConcurrentMark看到这些临时类。
InstanceKlass::_previous_version_count计数错误的一个bug,导致G1ConcurrentMark能调用临时类。
京东遇到过类似bug
链接地址:https://zhuanlan.zhihu.com/p/665260001
很巧合的都是在C1编译jdbc驱动的场景出现的
Current CompileTask:
C1: 319967 19019 ! 3 com.mysql.jdbc.Buffer::readString (121 bytes)
京东:Current CompileTask:
C2:43781461 13331 ! 4 com.mysql.cj.NativeSession::execSQL (579 bytes)
各位大佬如果有更详细的解答可以留言。
相关文章:
JDK bug:ciObjectFactory::create_new_metadata
文章目录 1、问题2.详细日志3.JDK:bug最终bug链接: 京东遇到过类似bug各位大佬如果有更详细的解答可以留言。 1、问题 Problematic frame: V [libjvm.so0x438067] ciObjectFactory::create_new_metadata(Metadata*)0x327 关键字还是ciObjectFactory::cr…...
Flink系列之:Over聚合
Flink系列之:Over聚合 一、Over聚合二、ORDER BY三、PARTITION BY四、范围(RANGE)定义五、RANGE 间隔六、ROW 间隔 适用于流、批 一、Over聚合 OVER 聚合通过排序后的范围数据为每行输入计算出聚合值。和 GROUP BY 聚合不同, OV…...
Java开发工具积累(符合阿里巴巴手册规范)
文章目录 一、命名规约二、代码格式三、集合篇1. 栈、队列、双端队列2. List的升序倒序3. Map的升序降序4. 二维数组排序5. 集合之间的转换6. Map键值对遍历7. 重写equal与hashCode8. ArrayList的subList9. keySet()/values()/ent…...
SiLM5350MDBCA-DG车规级隔离驱动芯片,我们能为汽车智能提供什么?
SiLM5350MDBCA-DG是一款适用于IGBT、MOSFET的单通道 隔离门极驱动器,具有10A拉电流和10A灌电流驱动能 力。提供内部钳位功能,可单独控制 上升时间和下降时间。 在 SOP8 封 装 中 具 有 3000VRMS 隔 离 耐 压 ( 符 合 UL1577)。 与…...
【开题报告】基于SpringBoot的企业财务管理系统的设计与实现
1.研究背景 随着全球经济的发展和市场竞争的加剧,企业财务管理变得越来越重要。企业需要一个高效、精确、安全的财务管理系统来管理企业的财务事务,提供准确的财务数据支持决策制定。传统的手工财务管理方式已经无法满足企业的需求,因此&…...
【C盘清理】Jetbrains全家桶(PyCharm、Clion……)更改 IDE 特定文件(配置、缓存、插件、日志等)存储位置
文章目录 一、官网说明二、更改 IDE 目录的位置1. 转到“帮助”|“编辑自定义属性”2. 各文件位置3. 以PyCharm系统目录为例4. 修改idea.properties 三、清理旧的 IDE 目录 一、官网说明 IDE 使用的目录官网说明 二、更改 IDE 目录的位置 默认情况下,PyCharm 将每…...
nginx部署vue项目
nginx部署vue 解决nginx中vue项目刷新报404问题解决nginx转发后端服务隐藏部分url访问url路径/prod-api/api经过nginx反向代理后,到达后端服务的实际url地址为/api。 解决nginx中vue项目刷新报404问题 location / { …...
Relocations for this machine are not implemented,IDA版本过低导致生成汇编代码失败
目录 1、问题描述 2、安卓app发生崩溃,需要查看汇编代码上下文去辅助分析 3、使用IDA打开.so动态库文件,提示Relocations for this machine are not implemented 4、IDA版本较老,不支持ARM64的指令集,使用7.0版本就可以了 5、…...
[ CTF ]【天格】战队WriteUp-第七届“强网杯”全国安全挑战赛
第七届“强网杯”全国安全挑战赛 2023.12.16~2023.12.17 文章目录 【Misc】Pyjail ! Its myFILTER !!!easyfuzz谍影重重2.0签到Pyjail ! Its myRevenge !!!server_8F6C72124774022B.py 问卷调查 【Reverse】ezre 【Web】happygame 【强网先锋】石头剪刀布TrieSpeedUpezreez_fmt…...
Android13音频录制适配
Android13音频录制适配 前言: 之前写过一篇音频录制的文章,当时是在Android10以下的手机可以成功录制和播放,但是Android10及以上手机提示创建文件失败,最近做过Android13的适配,索性一起把之前的录音也适配了&#…...
【Python】—— 如果使用matplotlib做数据可视化
matplotlib做数据可视化 相关知识掌握matplotlib的基本使用方法1. 折线图2. 散点图3. 柱状图4. 饼图5. 直方图6. 等高线图7. 图形定制 掌握数据处理的基本方法1. 数据筛选2. 缺失值处理3. 异常值处理 理解数据可视化的原则和方法1. 选择合适的图表类型2. 避免数据混淆3. 突出重…...
【MyBatis-Plus】多数据源分页配置(低版本暂时就支持一种(可选),高版本多支持)
【转载】一、Mybatis Plus 3.4 版本之后分页插件的变化 1、地址 Mybatis Plus 3.4版本之后分页插件的变化 2、内容 1、MybatisPlusInterceptor 从 Mybatis Plus 3.4.0 版本开始,不再使用旧版本的 PaginationInterceptor,而是使用 MybatisPlusInterce…...
Linux 特殊符号
目录 1. # 注释 2. ;命令分隔符 3. .. 上级目录 4. . 当前目录 5. " " 换行,解析变量 6. 换行,不解析变量 7. \ 和 / 8. !历史命令调用,取反 9. * 通配符 10. $ 调用变量 11. | 管道 12. || …...
TDengine 签约中船九院,助力航运业智能化转型升级
在大数据时代背景下,船舶智能化已经成为船舶制造与航运领域发展的必然趋势。智能船舶作为《中国制造 2025》中明确重点发展的领域,代表了船舶未来的方向,对于航运业的转型升级至关重要。其中,大数据的处理和运用成为船舶智能化转型…...
upload-labs笔记
简介 upload-labs是一个使用php语言编写的,专门收集渗透测试和CTF中遇到的各种上传漏洞的靶场。旨在帮助大家对上传漏洞有一个全面的了解。目前一共21关,每一关都包含着不同上传方式。 文件上传漏洞是指: Web 服务器允许用户将文件上传至其…...
Android Studio好用的插件推荐
目录 一、插件推荐 二、如何下载 1.点击File—>Settings 2.点击Plugins然后进行搜索下载 三、Android Studio 模板 一、插件推荐 这个插件可以为您自动生成Parcelable代码。Parcelable是一种用于在Android组件之间传递自定义对象的机制,但手动编写Parcela…...
第三十九章 其他特殊主题 - 映射 IRIS ID 以供导出
文章目录 第三十九章 其他特殊主题 - 映射 IRIS ID 以供导出控制导出时的命名空间前缀XMLPREFIX 第三十九章 其他特殊主题 - 映射 IRIS ID 以供导出 当在顶层映射 IRIS 对象(而不是作为另一个对象的属性)时,其内部 ID、OID 和全局唯一 ID 不…...
文件操作(下)
标题的顺序是接着之前写的,希望这篇博客对你有帮助 七. 随机读写函数 实际上,无论是读还是写,在一次调用顺序读写函数,文件指针会移到已经读过或者写过的下一个位置,从那个位置开始下一次读和写(在文件没有…...
面试必问-vue3中ref与这个reactive的区别
ref和reactive是Vue 3中两种不同的响应式数据处理方式。 ref:ref函数可以将普通的Javascript值转换为一个响应式引用。它返回一个包含.value属性的对象,可以通过读取或修改.value来操作引用的值。当引用的值发生变化时,Vue会自动追踪依赖并更…...
网络(九)三层路由、DHCP以及VRRP协议介绍
目录 一、三层路由 1. 定义 2. 交换原理 3. 操作演示 3.1 图示 3.2 LSW1新建vlan10、20、30,分别对应123接口均为access类型,接口4为trunkl类型,允许所有vlan通过 3.3 LSW2新建vlan10、20、30,配置接口1为trunk类型&…...
无机布防火卷帘门价格怎么算?按尺寸定制,按需报价
无机布防火卷帘门作为建筑防火分区的核心设备,价格一直是工程采购的关注重点。很多用户在询价时,会发现不同厂家的报价差异较大,这是因为无机布防火卷帘门的价格并非按统一单价计算,而是完全根据项目的实际需求定制化核算。 &…...
古戏台构件声学特性的时域有限差分方法【附模型】
✨ 长期致力于时域有限差分法、窑洞、戏台、八字墙、共形技术研究工作,擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流,点击《获取方式》 (1)曲面共形网格快速生成算法: …...
2026上半年数据库系统工程师(软考)上午题回忆与解析(非标答版)
本文为考后回忆整理,非官方标准答案,旨在为考后对答案及下半年备考的同学提供参考。题目顺序和表述可能与原卷有出入,欢迎在评论区指正、补充。📊 整体考情分析 刚结束的2026年上半年数据库系统工程师考试,上午题的风格…...
软件测试行业的未来趋势:这3类测试将成为主流
随着数字化转型的深入推进,软件已经成为驱动各行业变革的核心生产力,从自动驾驶汽车到企业级云原生平台,从智慧医疗设备到工业互联网系统,软件的复杂度、规模和对安全性的要求都在呈指数级增长。作为软件质量保障的核心环节&#…...
TorchEasyRec:阿里巴巴开源的推荐系统深度学习框架详解
第一部分:项目概览与核心功能 一、项目简介:什么是 TorchEasyRec? TorchEasyRec 是阿里巴巴 PAI 团队开发的基于 PyTorch 的推荐系统框架,专门用于构建生产级别的深度学习推荐模型。简单来说,它就是一个让你能够快速…...
云厂商认证的价值变迁:从AWS到阿里云,哪个含金量更高?
当测试工程师开始关注云认证过去十年,软件测试领域的认证风向悄然生变。十年前,测试工程师手中的王牌是ISTQB(国际软件测试资格委员会)基础级或高级证书,这份全球通用的“测试护照”足以敲开大多数企业的大门。然而&am…...
UE4SS:解锁虚幻引擎游戏的无限可能性,让每个玩家都能成为创造者
UE4SS:解锁虚幻引擎游戏的无限可能性,让每个玩家都能成为创造者 【免费下载链接】RE-UE4SS Injectable LUA scripting system, SDK generator, live property editor and other dumping utilities for UE4/5 games 项目地址: https://gitcode.com/gh_m…...
024、NPU指令集架构(ISA)概述:从CISC到VLIW
024、NPU指令集架构(ISA)概述:从CISC到VLIW 去年冬天调试一块国产NPU芯片的卷积算子,跑ResNet-50前向推理,死活比理论算力低了一个数量级。抓了三天波形,最后发现是指令发射槽的冲突——两条MAC指令争同一个数据总线,硬件自动插入三个空泡周期。那一刻我盯着逻辑分析仪…...
抖音内容自动化采集与管理的技术实现方案
抖音内容自动化采集与管理的技术实现方案 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support. 抖音批量下载工具&am…...
Unity背包拖拽实战:三坐标系映射与跨Panel交互原理
1. 这不是“拖一拖就完事”的UI小功能,而是Unity UI系统能力的实战压力测试 在Unity项目里,“背包装备拖拽”这六个字,新手常以为只是给Image加个DragHandler接口、写几行OnBeginDrag/OnDrag/OnEndDrag回调——结果上线前一周,策划…...
