Subject: Bookie crashes with -25 error when enabling StreamStorageLifecycleComponent (Pulsar 4.1.1)
Hi everyone 👋 — I’m setting up a small Pulsar 4.1.1 cluster and running into an issue when enabling
stream storage.
Cluster Setup
I have 3 VMs:
Host CPUs RAM Storage Roles
10.0.1.74 8 16GB 500GB SSD ZooKeeper + Bookie + Broker
10.0.1.75 8 16GB 400GB SSD ZooKeeper + Bookie + Broker
10.0.1.91 12 64GB 100GB SSD ZooKeeper
Cluster Init Command
bash
bin/pulsar initialize-cluster-metadata \
--cluster dev-cluster-1 \
--metadata-store zk
10.0.1.742181,10.0.1.75
2181,10.0.1.912181 \
--configuration-metadata-store zk
10.0.1.742181,10.0.1.75
2181,10.0.1.912181 \
--web-service-url
http://10.0.1.74:8080,10.0.1.75:8080 \
--web-service-url-tls
https://10.0.1.74:8443,10.0.1.75:8443 \
--broker-service-url
pulsar://10.0.1.74:6650,10.0.1.75:6650 \
--broker-service-url-tls
pulsar+ssl://10.0.1.74:6651,10.0.1.75:6651
Bookie Config (relevant parts)
properties
storageserver.grpc.port=4181
dlog.bkcEnsembleSize=2
dlog.bkcWriteQuorumSize=2
dlog.bkcAckQuorumSize=1
storage.range.store.dirs=data/bookkeeper/ranges
storage.serve.readonly.tables=false
storage.cluster.controller.schedule.interval.ms=30000
Issue
When I run Pulsar in stateless mode, ZooKeeper, BookKeeper, and Brokers all start fine.
But when I enable:
properties
extraServerComponents=org.apache.bookkeeper.stream.server.StreamStorageLifecycleComponent
both Bookies crash shortly after startup with a BKTransmitException and error -25.
Printed using ChatGPT to PDF, powered by PDFCrowd HTML to PDF API. 8/9
Excerpt from logs
kotlin
Caused by: org.apache.distributedlog.exceptions.BKTransmitException:
Failed to open ledger handle for log segment ... : -25
What I’ve tried
Verified ZooKeeper quorum and BookKeeper ledger directories
Cleaned /data/bookkeeper and restarted the cluster
Ensured the ensemble/write/ack quorum configs match cluster size
Question
Has anyone successfully enabled the stream storage component (StreamStorageLifecycleComponent) on
Pulsar 4.1.1?
What does the -25 (BKTransmitException) usually indicate in this context — ZK metadata corruption,
missing ledger, or a config mismatch?
Any guidance or example configurations for Pulsar 4.x stream storage clusters would be greatly
appreciated