LeveldbJournalNativeSpec fails on macOS ARM64 because leveldbjni-all lacks an arm64 library
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
- Área
- build-system, testing
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.3com.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
- https://repo1.maven.org/maven2/org/fusesource/leveldbjni/leveldbjni-all/1.8/
- https://search.maven.org/solrsearch/select?q=g:%22org.openlabtesting.leveldbjni%22&rows=200&wt=json
- https://repo1.maven.org/maven2/io/github/tronprotocol/leveldbjni-all/1.18.3/
- https://repo1.maven.org/maven2/com/halibobor/leveldbjni-all/1.23.2/
- Lenguaje dominante
- Scala
- Estrellas
- 1.7k
- Forks
- 212
- Merge medio
- 18 h 4 min
- PR fusionados (30 d)
- 113
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de apache/pekko
-
documentation
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
apache/pekko#1840 · 8 comentarios ·
Los mantenedores suelen responder en 1 día
-
Coordinator singleton lease loss permanently stops the local ShardRegion while the node is still UpPosiblemente ocupada @He-Pin la tomó hace 5 días. Abiertobug cluster
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
Los mantenedores suelen responder en 1 día
-
enhancement flaky make-tests-easier-to-run
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
Los mantenedores suelen responder en 1 día
-
build enhancement github_actions
Dificultad 3/5 1-2 días Aptitud para principiantes 70/100
Los mantenedores suelen responder en 1 día
-
enhancement
Dificultad 4/5 3-5 días Aptitud para principiantes 55/100
Los mantenedores suelen responder en 1 día
Todos los issues de apache/pekko
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
lichess-org/lila#22324 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Users who join a new meeting at the same moment: one sometimes gets "Ops, something went wrong" because bbb-web drops their registration (race on `Meeting.userCustomData`)Posiblemente ocupada @antobinary la tomó hoy. Abiertomodule: core
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
bigbluebutton/bigbluebutton#26318 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
area:ci enhancement priority:low requires-triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
apache/datafusion-comet#7319 · 1 comentario ·
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 73/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
canton-network/splice#8087 ·
Los mantenedores suelen responder en 1 día