cculianu/Fulcrum

Raspberry Pi 5 error: <jemalloc>: Unsupported system page size

openoms opened this issue · 6 comments

Running Fulcrum v1.9.7 fails on a new Raspberry Pi 5 with the latest Raspberry OS based on Debian 12:

uname -a
Linux raspberrypi 6.1.0-rpi4-rpi-2712 #1 SMP PREEMPT Debian 1:6.1.54-1+rpt2 (2023-10-05) aarch64 GNU/Linux

The error:

sudo -u fulcrum ./Fulcrum /home/fulcrum/.fulcrum/fulcrum.conf
<jemalloc>: Unsupported system page size
<jemalloc>: Unsupported system page size
<jemalloc>: Unsupported system page size
terminate called without an active exception
Aborted

My config:

datadir = /home/fulcrum/.fulcrum/db
bitcoind = 127.0.0.1:8332
rpcuser = raspibolt
rpcpassword = xxxxxxxxxxx
# RPi optimizations
# avoid 'bitcoind request timed out'
bitcoind_timeout = 600
# reduce load (4 cores only)
bitcoind_clients = 1
worker_threads = 1
db_mem=1024
# for 4GB RAM
db_max_open_files=200
fast-sync = 1024
# server connections
# disable peer discovery and public server options
peering = false
announce = false
tcp = 0.0.0.0:50021
# ssl via nginx

Discussed here: raspiblitz/raspiblitz#4346

the PAGE_SIZE:

₿ getconf PAGE_SIZE
16384

jemalloc might not be available in this kernel. Could it be disabled until there is a better solution?
Example in Home Assistant: https://www.home-assistant.io/installation/alternative#optimizations

You may have to build from source yourself. Or google if there is some env var to disable it. I’m not at computer now — cannot google.

First will try to build on a newer version of the Raspberry OS as got report of it working with using
kernel=kernel8.img in the /boot/config.txt on :

linux raspibolt 6.1.0-rpi7-rpi-2712 #1 SMP PREEMPT Debian 1:6.1.63-1+rpt1 (2023-11-24) aarch64 GNU/Linux

https://t.me/raspibolt/23065

Found that it is actually the higher PAGE_SIZE which causes the error.The The default on the RPi5 is :

getconf PAGE_SIZE
16384

using:
kernel=kernel8.img in the /boot/config.txt
changes it back to:

getconf PAGE_SIZE
4096

and Fulcrum runs fine.

So the question is if we could make the jemalloc work with the 16k PAGE_SIZE ?

Not sure about that -- why not open an issue with the jemalloc repo (they're on github too).

jemalloc is already on this growing list: raspberrypi/bookworm-feedback#107

Closing this as it will not be solved in this repo, but let it serve as a reference point for others experiencing the same.

The solution is to place the line:

kernel=kernel8.img

in the beginning of /boot/config.txt

and restart the RPi.

Thanks yeah. It really is an issue with them and outside the scope/control I have in Fulcrum. Thanks for posting the issue and finding the solution thought!