jdk1.8与glibc的兼容性问题(JVM Crash+C [libc.so.6+0x81980] _IO_link_in+0x1f0)
Posted rongyongfeikai2
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jdk1.8与glibc的兼容性问题(JVM Crash+C [libc.so.6+0x81980] _IO_link_in+0x1f0)相关的知识,希望对你有一定的参考价值。
背景:
基于alpine3.15基础镜像构建的,由于alpine默认用的是musel libc,所以oracle jdk是用不了的,需要自己安装glibc相关的库(尤其时涉及到验证码绘制这块时,需要安装glibc-bin,glibc-i18n)
问题现象:
一旦调用验证码绘制接口,jvm就crash了,报错里的关键信息:
# Problematic frame:
# C [libc.so.6+0x81980] _IO_link_in+0x1f0
从报错过程种就猜测到是jdk1.8与glibc版本兼容问题,但是试了2.25和2.30都有问题。
绝望之际,发现了一处讨论:https://github.com/AdoptOpenJDK/openjdk-docker/issues/520
虽然该讨论主要是说的openjdk11与glibc的兼容问题,但问题现象是类似的,他是安装fontconfig ttf-dejavu(fontconfig看起来就是字体相关的),会触发
C [libc.so.6+0x81980] _IO_link_in+0x1f0报错。
里面@bharathappali有一段关键的回复:
“The issue got resolved after following the workaround provided by @aahlenst
Updating GLIBC patch to 2.33 solved the issue.”
即将glibc更新至2.33可以绕过此问题。
当即,将glibc/glibc-bin/glibc-i18n统一升为2.33版本。问题解决。
以上是关于jdk1.8与glibc的兼容性问题(JVM Crash+C [libc.so.6+0x81980] _IO_link_in+0x1f0)的主要内容,如果未能解决你的问题,请参考以下文章
jdk1.8与glibc的兼容性问题(JVM Crash+C [libc.so.6+0x81980] _IO_link_in+0x1f0)