gpt4 book ai didi

Java Glassfish 4 崩溃并显示 "double free or corruption (fasttop)"

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:00:10 24 4
gpt4 key购买 nike

我一直在我的开发环境中运行 Glassfish 4

Windows
java version "1.7.0_40"
Java(TM) SE Runtime Environment (build 1.7.0_40-b43)
Java HotSpot(TM) 64-Bit Server VM (build 24.0-b56, mixed mode)

一切正常。

上周我部署到运行的 Debian Linux 服务器:

java version "1.7.0_25"
OpenJDK Runtime Environment (IcedTea 2.3.10) (7u25-2.3.10-1~deb7u1)
OpenJDK 64-Bit Server VM (build 23.7-b01, mixed mode)

在 Linux 环境中运行时,应用程序间歇性崩溃。它运行了几天没有崩溃,然后在几个小时内崩溃了几次。当它崩溃时,glassfish 或 jvm 日志文件中没有错误消息,进程就消失了,在一种情况下,jvm.log 包含被截断的行。到目前为止我发现的唯一线索是系统日志和用户日志包含:

grep java *

syslog:Jan 14 13:41:19 omega-rm java: *** glibc detected *** /usr/lib/jvm/java-7-openjdk-amd64/bin/java: double free or corruption (fasttop): 0x00007fb6ac076730 ***
syslog.1:Jan 13 19:48:04 omega-rm java: *** glibc detected *** /usr/lib/jvm/java-7-openjdk-amd64/bin/java: double free or corruption (fasttop): 0x00007fb037835c90 ***
user.log:Jan 13 19:48:04 omega-rm java: *** glibc detected *** /usr/lib/jvm/java-7-openjdk-amd64/bin/java: double free or corruption (fasttop): 0x00007fb037835c90 ***
user.log:Jan 14 13:41:19 omega-rm java: *** glibc detected *** /usr/lib/jvm/java-7-openjdk-amd64/bin/java: double free or corruption (fasttop): 0x00007fb6ac076730 ***
user.log.1:Jan 8 10:19:30 omega-rm java: *** glibc detected *** /usr/lib/jvm/java-7-openjdk-amd64/bin/java: double free or corruption (fasttop): 0x0000000007974a90 ***
user.log.1:Jan 8 14:29:11 omega-rm java: *** glibc detected *** /usr/lib/jvm/java-7-openjdk-amd64/bin/java: double free or corruption (fasttop): 0x00000000082431f0 ***
user.log.1:Jan 8 14:57:19 omega-rm java: *** glibc detected *** /usr/lib/jvm/java-7-openjdk-amd64/bin/java: double free or corruption (fasttop): 0x00007f805f87f490 ***
user.log.1:Jan 8 18:23:42 omega-rm java: *** glibc detected *** /usr/lib/jvm/java-7-openjdk-amd64/bin/java: double free or corruption (fasttop): 0x00007eff39829ca0 ***

除了末尾的地址之外,所有错误看起来都一样。所有时间都对应于服务器崩溃的时间,因此这似乎是服务器消失的原因。

所讨论的应用程序是一个文档存储系统,它接受多种格式的文档并将它们存储在 MongoDB 中。在可能的情况下,它还会将图像呈现为 JPG 格式。

它使用 Apache PDF Box 和 Java Advanced Imaging 来渲染 JPG。它运行 Spring Framework、SpringData MongoDB 和 Spring Security。它偶尔会使用 jtds 访问数据库,但这种情况并不常见,而且我相当确定在崩溃时没有发生任何数据库 Activity 。图像重新处理是最近发生的,但在大多数崩溃时已成功完成(未对所有崩溃进行验证,但对最近的崩溃进行了详细验证,并且已为最近保存的文档生成并保存了每个图像)。崩溃发生在最新文档上传 50 秒后。

我在网上发现的几乎所有讨论都是针对 C 或 C++ 程序进行的,在那里它很有意义。我能想到的让它在 Java 程序中发生的唯一方法是通过 JNI(我没有使用它,也许我正在使用的一些库做 JNI 但如果是的话我不知道它)或者JVM 错误。

有没有人有任何建议来缩小导致此问题的范围?

是否可以打开任何日志记录或诊断以获取更多详细信息?

目前我唯一能想到的就是尝试在关闭某些功能的情况下运行应用程序一段时间(目前我最怀疑使用 PDF Box 进行 PDF 渲染)并查看哪个功能组合是稳定的而不是。如果可能的话,我宁愿有一个更明确的方法(并且不需要等待几天来查看测试是否有效!)。

最佳答案

您可以尝试安装 Oracle“官方”二进制文件,并且可以找到有关如何为 Ubuntu 执行此操作的指南 here .它使用 update-alternatives,这是一个 Debian 工具,因此将在 Ubuntu 中可用以指向 Oracle JRE 安装。

关于Java Glassfish 4 崩溃并显示 "double free or corruption (fasttop)",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21118477/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com