Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

LeveldbJournalNativeSpec fails on macOS ARM64 because leveldbjni-all lacks an arm64 library

Abierto
#3,327 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
48/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Tranquilo
Stack tecnológico
scala

Línea de trabajo

Comienza en project/Dependencies.scala y ejecuta el comando persistence-tck para org.apache.pekko.persistence.journal.leveldb.LeveldbJournalNativeSpec en macOS ARM64. Revisa los artefactos leveldbjni-all candidatos y su compatibilidad con org.iq80.leveldb y Windows-native antes de elegir un enfoque. Se considera terminado cuando la native spec y validatePullRequest funcionan en las plataformas compatibles sin romper los metadatos de dependencias publicados.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Description

LeveldbJournalNativeSpec fails on Apple Silicon because Pekko currently uses org.fusesource.leveldbjni:leveldbjni-all:1.8, whose macOS native library does not contain an ARM64 slice.

Reproduction

Environment:

  • macOS 26.5.1
  • uname -m: arm64
  • Java 25.0.1

Run:

sbt "persistence-tck / Test / testOnly org.apache.pekko.persistence.journal.leveldb.LeveldbJournalNativeSpec"

The same failure is reached from validatePullRequest.

Actual error:

java.lang.UnsatisfiedLinkError: Could not load library
...
fat file, but missing compatible architecture
(have x86_64,i386, need arm64e or arm64)
Root cause

project/Dependencies.scala defines:

val levelDBNative =
  "org.fusesource.leveldbjni" % "leveldbjni-all" % "1.8" % "optional;provided"

The bundled macOS library reports:

META-INF/native/osx/libleveldbjni.jnilib:
Mach-O universal binary with 2 architectures: x86_64 i386

It has no arm64 slice.

Workarounds investigated

The HawtJNI property -Dlibrary.leveldbjni.path=<dir> is recognized and attempts to load a library from the supplied directory. However, the ARM library in org.openlabtesting.leveldbjni:leveldbjni-linux64-aarch64:1.8 is a Linux binary:

ELF 64-bit LSB shared object, ARM aarch64

Pointing library.leveldbjni.path at that library on macOS fails with:

slice is not valid mach-o file

The org.openlabtesting.leveldbjni group has four artifacts in Maven Central (leveldbjni-project, leveldbjni, leveldbjni-linux64-aarch64, and leveldbjni-all) and no macOS ARM64 artifact. Its leveldbjni-all:1.8 still bundles the old x86_64+i386 macOS library.

Huawei variants 1.8-hw-20191105 and 1.8-hw-aarch64 also add Linux AArch64 ELF libraries while retaining the old x86_64+i386 macOS library.

Possible direction

These Maven Central artifacts contain a real Mach-O ARM64 library and passed a local JNI open/put/get/close/destroy smoke test:

  • io.github.tronprotocol:leveldbjni-all:1.18.3
  • com.halibobor:leveldbjni-all:1.23.2

A replacement needs compatibility review before adoption: these artifacts use a different org.iq80.leveldb API dependency and do not bundle the Windows native DLLs present in the current artifact. A platform-specific test dependency or another approach may be needed to avoid regressions and non-reproducible published POMs.

Expected behavior

The native LevelDB spec should either run successfully on macOS ARM64 with an Apache-compatible supported dependency, or the unsupported platform should be handled explicitly without breaking the full PR validation.

References
Lenguaje dominante
Scala
Estrellas
1.7k
Forks
212
Merge medio
18 h 4 min
PR fusionados (30 d)
113

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de apache/pekko

Todos los issues de apache/pekko

Issues similares

Más issues de Scala

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.