【问题标题】:Java Springboot build fails in raspberry pi树莓派中的 Java Springboot 构建失败
【发布时间】:2021-02-27 19:36:38
【问题描述】:

总结

我正在尝试在我的树莓派上构建 springboot 应用程序,但出现 SIGBUS (0x7) 错误

错误:

# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGBUS (0x7) at pc=0xb3de3a84, pid=7, tid=32
#
# JRE version: OpenJDK Runtime Environment AdoptOpenJDK (14.0.2+12) (build 14.0.2+12)
# Java VM: OpenJDK Server VM AdoptOpenJDK (14.0.2+12, mixed mode, sharing, g1 gc, linux-arm)
# Problematic frame:
# v  ~StubRoutines::atomic_load_long
#
# Core dump will be written. Default location: /server/core
#
# An error report file with more information is saved as:
# /server/hs_err_pid7.log

重现步骤

我有一个带有以下 sn-p 的 docker 文件。

COPY .mvn .mvn

COPY pom.xml .

RUN ./mvnw dependency:go-offline

COPY src src

RUN ./mvnw package -DskipTests  # <------- Fails here

在我的另一台装有 ubuntu 的主机上构建良好。 但在带有 raspbian 的 Raspberry Pi 4 上失败。

预期结果

希望能像我的其他机器一样成功构建

实际结果

失败并出现以下错误跟踪。

[thread 52 also had an error]
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGBUS (0x7) at pc=0xb3de3a84, pid=7, tid=32
#
# JRE version: OpenJDK Runtime Environment AdoptOpenJDK (14.0.2+12) (build 14.0.2+12)
# Java VM: OpenJDK Server VM AdoptOpenJDK (14.0.2+12, mixed mode, sharing, g1 gc, linux-arm)
# Problematic frame:
# v  ~StubRoutines::atomic_load_long
#
# Core dump will be written. Default location: /server/core
#
# An error report file with more information is saved as:
# /server/hs_err_pid7.log
#
# If you would like to submit a bug report, please visit:
#   https://github.com/AdoptOpenJDK/openjdk-support/issues
#
Aborted (core dumped)
The command '/bin/sh -c ./mvnw package -DskipTests' returned a non-zero code: 134
ERROR: Service 'server' failed to build

分类信息

Java 版本:14.0.2+12

您的操作系统和平台是什么? Raspbian [完整] 最新。树莓派 4

您是如何安装 Java 的? Dockerfile sn -p 以上分享。

它以前有效吗? 没有

您是否使用其他 Java 版本进行了测试? 是的,v11

【问题讨论】:

    标签: spring-boot raspberry-pi raspbian adoptopenjdk


    【解决方案1】:

    这是空间不足的问题,现在阅读此https://confluence.atlassian.com/confkb/java-vm-dies-with-sigbus-0x7-when-temp-directory-is-full-on-linux-815584538.html 来解决它,您必须在 /tmp 文件夹中腾出空间或使用更大空间的存储设备并为 /tmp 文件夹分配空间。

    编辑:也看到这个 https://bugs.java.com/bugdatabase/view_bug.do?bug_id=6563308

    【讨论】:

    • 我在我的 raspbian 操作系统中找不到 /tmp 分区。我在 fstab 中添加了tmpfs /tmp tmpfs defaults,noatime 0 0 tmpfs /var/log tmpfs defaults,noatime,size=64m 0 0。现在在使用 df -h 时,我发现 1GB 的 /tmp 空间为 0。我仍然发现相同的错误,并且在此构建过程中没有使用空间。
    • 可能你的 jar 文件很大,但是这个错误仍然意味着空间不足,或者你可能需要在你的树莓派上重新安装 os 并在安装过程中更改 /etc 存储空间。但显然这是一个错误,所以它是根据文档。我不知道这个错误可能还有其他原因。(/tmp 是根目录中的文件夹而不是分区)
    【解决方案2】:

    回答我自己的问题, 我尝试了一个 openjdk 而不是采用openjdk 并且它有效。 如果它不适合您,请尝试不同版本的 openjdk。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-21
      • 2020-02-20
      • 2021-08-12
      • 2023-03-10
      • 1970-01-01
      • 2017-11-20
      • 1970-01-01
      相关资源
      最近更新 更多