alibaba / nacos

an easy-to-use dynamic service discovery, configuration and service management platform for building cloud native applications.
https://nacos.io
Apache License 2.0
30.01k stars 12.8k forks source link

麒麟V10下,loongarch64 龙芯架构, librocksdbjni-linux64.so:无法打开共享对象文件 #10630

Closed ljh205sy closed 1 year ago

ljh205sy commented 1 year ago

麒麟V10下,loongarch64 龙芯架构, librocksdbjni-linux64.so:无法打开共享对象文件 [root@vap test]# uname -a Linux vap.kafka.com.cn 4.19.90-52.22.sm3.03.v2207.a.ky10.loongarch64 #1 SMP Sun May 14 15:09:34 CST 2023 loongarch64 loongarch64 loongarch64 GNU/Linux

nacos version: 2.2.2 jraft-core-1.3.12 rocksdbjni-7.10.2.jar

在麒麟的操作系统里面,使用龙芯的LOONGARCH64架构,出现了这样的一个异常, Caused by: java.lang.UnsatisfiedLinkError: /opt/test/rocksdb/librocksdbjni-linux64.so: /opt/test/rocksdb/librocksdbjni-linux64.so: 无法打开共享对象文件: 没有那个文件或目录 (Possible cause: can't load AMD 64-bit .so on a LOONGARCH64-bit platform) at java.lang.ClassLoader$NativeLibrary.load(Native Method) at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1934) at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1817)

Linux loongarch64 好像是对rocksdb不支持,有好的意见吗?

ljh205sy commented 1 year ago

image 错误截图如上

KomachiSion commented 1 year ago

可以自行切换至其他raft log 实现, jraft社区提供了其他的实现类型

比如 https://github.com/sofastack/sofa-jraft/tree/master/jraft-extension/java-log-storage-impl

ljh205sy commented 1 year ago

image RocksDB在该机器下重新编译,重新生成rocksDBJNI,

指定librocksdbjni.so文件路径,如果没有该文件,会从jar文件内查找,最后会放到/tmp目录下。tmp/librocksdbjni.so没有权限

JAVA_OPT="${JAVA_OPT} -Djava.library.path=${BASE_DIR}/target"

编译版本:rocksdb-7.10.2 jraft版本: 1.3.13

com.alipay.sofa jraft-parent 1.3.13
wuyad commented 9 months ago

image RocksDB在该机器下重新编译,重新生成rocksDBJNI,

指定librocksdbjni.so文件路径,如果没有该文件,会从jar文件内查找,最后会放到/tmp目录下。tmp/librocksdbjni.so没有权限

JAVA_OPT="${JAVA_OPT} -Djava.library.path=${BASE_DIR}/target"

编译版本:rocksdb-7.10.2 jraft版本: 1.3.13 com.alipay.sofa jraft-parent 1.3.13

现在解决了没?可以在龙芯下使用了吗?

zhangshdn commented 9 months ago

可以自行切换至其他raft log 实现, jraft社区提供了其他的实现类型

比如 https://github.com/sofastack/sofa-jraft/tree/master/jraft-extension/java-log-storage-impl

能具体说下如何操作吗

pandaoknight commented 2 months ago

宿主机:loongarch64 + openEuler24.03,可以简易修改rocksdb的代码后,编译出所需 librocksdbjni*.so 供jraft和nacos 2.3.0使用。

待会儿提供镜像出来。