Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Raspberry Pi 4 java.lang.UnsatisfiedLinkError #2974

Closed
loziniak opened this issue Oct 28, 2021 · 4 comments
Closed

Raspberry Pi 4 java.lang.UnsatisfiedLinkError #2974

loziniak opened this issue Oct 28, 2021 · 4 comments

Comments

@loziniak
Copy link

Hello. I found that older versions (eg. 1.5.4) of Besu ran on Raspbery Pi without any significant modifications. Is arm64 platform supported? If not, how could I contribute to enable it? I work in Java :-)

Steps to Reproduce (Bug)

  1. Log in to RPi
  2. besu --min-gas-price=0 --data-path=data --genesis-file=../genesis.json --rpc-http-api=ETH,NET,IBFT --logging=INFO --bootnodes=enode://a6a5e740[,,,]@123.123.123.123:30303

Expected behavior: no errors

Actual behavior: I get these logs:

2021-10-29 00:22:16.703+02:00 | main | INFO  | SECP256K1 | Native secp256k1 not available
2021-10-29 00:22:16.730+02:00 | main | INFO  | Besu | Using the Java implementation of alt bn128
2021-10-29 00:22:16.731+02:00 | main | INFO  | Besu | Using the Java implementation of the signature algorithm
2021-10-29 00:22:16.746+02:00 | main | INFO  | Besu | Starting Besu version: besu/v21.7.4/linux-arm_32/openjdk-java-11
2021-10-29 00:22:17.546+02:00 | main | WARN  | Besu | --min-gas-price has been ignored because --miner-enabled was not defined on the command line.
2021-10-29 00:22:17.639+02:00 | main | WARN  | Besu | --rpc-http-api has been ignored because --rpc-http-enabled was not defined on the command line.
2021-10-29 00:22:17.655+02:00 | main | INFO  | Besu | Static Nodes file = /home/besu/IBFT-Network/node1/data/static-nodes.json
2021-10-29 00:22:17.658+02:00 | main | INFO  | StaticNodesParser | StaticNodes file /home/besu/IBFT-Network/node1/data/static-nodes.json does not exist, no static connections will be created.
2021-10-29 00:22:17.659+02:00 | main | INFO  | Besu | Connecting to 0 static nodes.
2021-10-29 00:22:17.677+02:00 | main | INFO  | Besu | Security Module: localfile
2021-10-29 00:22:17.780+02:00 | main | INFO  | RocksDBKeyValueStorageFactory | No existing database detected at /home/besu/IBFT-Network/node1/data. Using version 1
2021-10-29 00:22:18.272+02:00 | main | ERROR | Besu | Uncaught exception in thread "main"
java.lang.UnsatisfiedLinkError: /tmp/librocksdbjni10400974045892340195.so: /tmp/librocksdbjni10400974045892340195.so: cannot open shared object file: No such file or directory (Possible cause: can't load IA 32-bit .so on a ARM-bit platform)
	at java.base/java.lang.ClassLoader$NativeLibrary.load0(Native Method)
	at java.base/java.lang.ClassLoader$NativeLibrary.load(ClassLoader.java:2442)
	at java.base/java.lang.ClassLoader$NativeLibrary.loadLibrary(ClassLoader.java:2498)
	at java.base/java.lang.ClassLoader.loadLibrary0(ClassLoader.java:2694)
	at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2627)
	at java.base/java.lang.Runtime.load0(Runtime.java:768)
	at java.base/java.lang.System.load(System.java:1837)
	at org.rocksdb.NativeLibraryLoader.loadLibraryFromJar(NativeLibraryLoader.java:79)
	at org.rocksdb.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:57)
	at org.rocksdb.RocksDB.loadLibrary(RocksDB.java:69)
	at org.rocksdb.RocksDB.<clinit>(RocksDB.java:38)
	at org.hyperledger.besu.plugin.services.storage.rocksdb.RocksDbUtil.loadNativeLibrary(RocksDbUtil.java:30)
	at org.hyperledger.besu.plugin.services.storage.rocksdb.segmented.RocksDBColumnarKeyValueStorage.<clinit>(RocksDBColumnarKeyValueStorage.java:66)
	at org.hyperledger.besu.plugin.services.storage.rocksdb.RocksDBKeyValueStorageFactory.create(RocksDBKeyValueStorageFactory.java:124)
	at org.hyperledger.besu.ethereum.storage.keyvalue.KeyValueStorageProviderBuilder.build(KeyValueStorageProviderBuilder.java:71)
	at org.hyperledger.besu.cli.BesuCommand.keyValueStorageProvider(BesuCommand.java:2281)
	at org.hyperledger.besu.cli.BesuCommand.getControllerBuilder(BesuCommand.java:1697)
	at org.hyperledger.besu.cli.BesuCommand.buildController(BesuCommand.java:1690)
	at org.hyperledger.besu.cli.BesuCommand.initController(BesuCommand.java:1685)
	at org.hyperledger.besu.cli.BesuCommand.run(BesuCommand.java:1223)
	at picocli.CommandLine.executeUserObject(CommandLine.java:1939)
	at picocli.CommandLine.access$1300(CommandLine.java:145)
	at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2352)
	at picocli.CommandLine$RunLast.handle(CommandLine.java:2346)
	at picocli.CommandLine$RunLast.handle(CommandLine.java:2311)
	at picocli.CommandLine$AbstractParseResultHandler.handleParseResult(CommandLine.java:2172)
	at picocli.CommandLine.parseWithHandlers(CommandLine.java:2550)
	at org.hyperledger.besu.cli.util.ConfigOptionSearchAndRunHandler.handle(ConfigOptionSearchAndRunHandler.java:56)
	at org.hyperledger.besu.cli.util.ConfigOptionSearchAndRunHandler.handle(ConfigOptionSearchAndRunHandler.java:31)
	at picocli.CommandLine$AbstractParseResultHandler.handleParseResult(CommandLine.java:2172)
	at picocli.CommandLine.parseWithHandlers(CommandLine.java:2550)
	at org.hyperledger.besu.cli.BesuCommand.parse(BesuCommand.java:1368)
	at org.hyperledger.besu.cli.BesuCommand.parse(BesuCommand.java:1196)
	at org.hyperledger.besu.Besu.main(Besu.java:50)

Frequency: everytime

Versions (Add all that apply)

  • Software version: 21.7.4
  • Java version: OpenJDK Runtime Environment (build 11.0.12+7-post-Raspbian-2deb10u1)
  • OS Name & Version: Raspbian GNU/Linux 10 (buster)
  • Kernel Version: Linux rpi1 5.10.17-v7l+ # 1414 SMP Fri Apr 30 13:20:47 BST 2021 armv7l GNU/Linux
  • Virtual Machine software & version: -
  • Docker Version: -
  • Cloud VM, type, size: -
@loziniak
Copy link
Author

Perhaps this discussion here could help: facebook/rocksdb#5559

@atoulme
Copy link
Contributor

atoulme commented Oct 29, 2021

Patches welcome, please note also the work on besu-native required to use native dependencies.

@loziniak
Copy link
Author

Seems I found the problem: facebook/rocksdb#9097

@loziniak
Copy link
Author

Or not: facebook/rocksdb#9097 (comment)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants