sindhushree
07/07/2025, 1:42 PMkailevy
07/09/2025, 12:29 AMJeroen van der Wal
07/09/2025, 1:55 PMNikolas Petrou
07/13/2025, 6:28 AMtenant: public
namespace: default
name: jdbc_sink_pulsar_to_mysql_temp
archive: connectors/pulsar-io-jdbc-sqlite-4.0.0.nar
inputs:
- <persistent://public/default/temp_schema>
configs:
jdbcUrl: "jdbc:<mysql://mysql:3306/mqtt_db>"
userName: "user1"
password: "1234567890"
tableName: "pulsar_to_db_temp"
insertMode: INSERT
key: "message_id"
nonKey: "temperature,timestamp,pulsar_timestamp"
and i mount the connector under the connectors folder like so - ./pulsar-mysql/pulsar-io-jdbc-sqlite-4.0.0.nar:/pulsar/connectors/pulsar-io-jdbc-sqlite-4.0.0.nar
but i get this error
ERROR org.apache.pulsar.functions.instance.JavaInstanceRunnable - Sink open produced uncaught exception:
java.sql.SQLException: No suitable driver found for jdbc:<mysql://mysql:3306/mqtt_db>
at java.sql.DriverManager.getConnection(Unknown Source) ~[java.sql:?]
at java.sql.DriverManager.getConnection(Unknown Source) ~[java.sql:?]
at org.apache.pulsar.io.jdbc.JdbcAbstractSink.open(JdbcAbstractSink.java:97) ~[pulsar-io-jdbc-core-4.0.0.jar:?]
at org.apache.pulsar.functions.instance.JavaInstanceRunnable.setupOutput(JavaInstanceRunnable.java:1080) ~[?:?]
at org.apache.pulsar.functions.instance.JavaInstanceRunnable.setup(JavaInstanceRunnable.java:263) ~[?:?]
at org.apache.pulsar.functions.instance.JavaInstanceRunnable.run(JavaInstanceRunnable.java:313) ~[?:?]
at java.lang.Thread.run(Unknown Source) [?:?]
Am I using the wrong connector? Or am I missing a configurationTyler Tafoya
07/16/2025, 6:32 PM/pulsar/data/bookkeeper/ledger0/current
I see files .log files days older than my retention period.
When researching this issue, I came across [PCK](https://docs.streamnative.io/private-cloud/v1/tools/pck/pck-overview) which seems to confirm this issue, as it aims to mitigate the problem. This does not look to be publicly available though - are there any alternative solutions?
Thanks in advance!sagar
07/17/2025, 10:59 AMtcolak
07/26/2025, 2:33 PMThomas MacKenzie
07/29/2025, 4:00 AM1
for the msg-dispatch-rate
and 315600000
for the dispatch-rate-period
, which essentially lower as much as possible the message throughput (I'm aware we can't actually pause message throughput with the dispatch rate).
But I noticed that the dispatch rate values returned by the admin client, on the application side, when the brokers restart, are empty as if they were not set. The consequence is that it unpauses the consumers, only to re-pause then after the brokers are done restarting. I just wanted to know if this is an expected behavior? I was assuming that this type of data, like topic properties was some sort of distributed data (from zookeeper) and was not impacted by brokers restartkazeem
07/30/2025, 11:08 PMLari Hotari
07/31/2025, 3:03 PMShresht Jain
08/02/2025, 6:43 PMJeffrey Tan
08/04/2025, 8:36 AMAlain Pigeon
08/04/2025, 10:15 PM[assure1@pg-apigeon4 ~]$ a1k -n messaging get pods
NAME READY STATUS RESTARTS AGE
pulsar-bookie-0 1/1 Running 0 23h
pulsar-broker-0 1/1 Running 0 23h
pulsar-proxy-0 1/1 Running 0 23h
pulsar-recovery-0 1/1 Running 0 23h
pulsar-toolset-0 1/1 Running 0 23h
pulsar-zookeeper-0 1/1 Running 0 23h
If I restart the node (i.e. delete all the pods), then pulsar-recovery, pulsar-broker, pulsar-bookie and pulsar-proxy are all stuck in Init:
[assure1@pg-apigeon4 ~]$ a1k -n messaging get pod
NAME READY STATUS RESTARTS AGE
pulsar-bookie-0 0/1 Init:0/1 0 77s
pulsar-broker-0 0/1 Init:0/2 0 77s
pulsar-proxy-0 0/1 Init:0/3 0 77s
pulsar-recovery-0 0/1 Init:0/1 0 77s
pulsar-toolset-0 1/1 Running 0 77s
pulsar-zookeeper-0 1/1 Running 0 77s
If I look at the pulsar-bookkeeper-verify-clusterid container log from the pulsar-recovery-0 pod, I notice the error:
ERROR org.apache.bookkeeper.discover.ZKRegistrationManager - BookKeeper metadata doesn't exist in zookeeper. Has the cluster been initialized? Try running bin/bookkeeper shell metaformat
I can solve this issue by running the pulsar-bookie-init. Then, pulsar-recovery-0 starts, but gets stuck at Init with other pods (pulsar-broker-0). The error in the wait-zookeeper-ready container of the pulsar-broker-0 pod:
Node does not exist: /admin/clusters/pulsar
2025-07-31T22:27:36,444+0000 [main] ERROR org.apache.zookeeper.util.ServiceUtils - Exiting JVM with code 1
Similarly, if I run pulsar-pulsar-init job job, then it gets unstuck and all the pods starts.
Is there a way to automate this without having me to run the pulsar-pulsar-init and pulsar-bookie-init jobs manually - because running those jobs is a pain, I first need to get the yaml from Helm, delete the existing jobs and apply the new jobs from the yaml I exported from Helm. Thanks.Thomas MacKenzie
08/05/2025, 5:14 PM4.1.0
to 4.1.1
with application 4.0.6
) following the release of Pulsar 4.0.6
?Lari Hotari
08/06/2025, 8:23 AMFilip
08/08/2025, 3:53 PMThomas MacKenzie
08/08/2025, 11:47 PMReconsumerLaterWithCustomProperties()
to send to RLQ (different topic)
• Nack()
the retries
• Send the message to the DLQ, still using Nack()
built-in consumer method
The issue is very inconsistent (we don't have a lot of errors in the system), but I noticed a few instances so far. One had 25
retries (instead of 10
)
Investigation:
• I looked at the broker config, was aware there is a limit of producer count for the dedup, but we are well under 10,000 per broker.
pulsar-broker-3:/pulsar$ cat conf/broker.conf | grep brokerDedup
brokerDeduplicationEnabled=true
brokerDeduplicationMaxNumberOfProducers=10000
brokerDeduplicationSnapshotFrequencyInSeconds=120
# It will run simultaneously with `brokerDeduplicationEntriesInterval`
brokerDeduplicationSnapshotIntervalSeconds=120
brokerDeduplicationEntriesInterval=1000
brokerDeduplicationProducerInactivityTimeoutMinutes=360
So my question is: is there anything that lead to RLQ messages duplicates in the system? I looked at our implementation and don't see anything suspicious so far but wanted to ask in case it's a know issue or if there something I should look into specifically.
Pulsar 4.0.5
/ Go client 0.16.0
but issue was also present in prior version
Thank youZach Blocker
08/13/2025, 2:33 PMKP
08/18/2025, 6:04 PMsijieg
08/18/2025, 8:48 PMPULSAR50
for 50% off registration.
👉 Register: https://www.eventbrite.com/e/data-streaming-summit-san-francisco-2025-tickets-1432401484399?aff=oddtdtcreator
📅 Full schedule: https://datastreaming-summit.org/event/data-streaming-sf-2025/schedule
What to expect
• Sep 29 — Training & Workshop Day: Hands-on data streaming training + advanced Streaming Lakehouse workshop (with AWS).
• Sep 30 — Main Summit: Inspiring keynotes + 4 tracks: Deep Dives, Use Cases, AI + Stream Processing, Streaming Lakehouse.
• Talks from top companies and community sessions featuring Pulsar, Flink, Iceberg and other data streaming technologies.
Would love to see you at the Summit! 🎉samriddhi
08/19/2025, 9:19 PMAUTO_CONSUME
- works great for reading any schema
• ❌ Output: Need exact schema match, but AUTO_PRODUCE
doesn't exist
The challenge: To avoid static schemas, I need to get schema info from Pulsar Admin at runtime, but Pulsar Functions don't have access to PulsarAdmin
(getting errors when trying).
Questions:
1. What's the recommended pattern for schema-agnostic functions?
2. How do I discover output topic schema at runtime without Admin access?
3. Any alternatives to runtime schema discovery for generic functions?
Goal: One function that works with multiple topic pairs having different schemas (Avro→Avro, JSON→JSON, Avro→JSON, etc.) without recompiling.
Anyone solved this or know the best practices?samriddhi
08/19/2025, 9:19 PMDan Rossi
08/20/2025, 7:44 PMSamuel
08/21/2025, 11:22 AMThomas MacKenzie
08/26/2025, 10:26 PMconf/broker.conf
by any chance?
I've been applying various changes to the brokers configuration with no issues, but I'm trying to set managedLedgerForceRecovery
and it does not seems to work. It's not present or applied (when the container starts, the application logs each config field being applied).
https://github.com/apache/pulsar/blob/master/pulsar-broker-common/src/main/java/org/apache/pulsar/broker/ServiceConfiguration.java#L2355-L2360
Looking at the config with cat conf/broker.conf | grep managedLedgerForceRecovery
, I have no results either. I understand it's a dynamic configuration field, but others are and I can see them in that file set with the right value so I'm wondering if I'm missing something?
Pulsar 4.0.6
Thanks for your helpJack LaPlante
08/27/2025, 6:34 PMThomas MacKenzie
08/28/2025, 3:24 AMserver error: PersistenceError: org.apache.bookkeeper.mledger.ManagedLedgerException: Error while recovering ledger error code: -10
This error was preventing the applications to publish messages, and also created producers. For 2h I could see the ledger count a bit off at 0 (not sure what happened, but bookies were up during that time I believe)
Some context: We believe the bookies were restarted (we use AWS spot instances in this env, so maybe a ungraceful shutdown).
I have 2 main questions:
• What would be the best course of action when this happens? (curious in manual intervention although not reactive with a system running 24/7)
• I know there are 2 brokers fields available fields managedLedgerForceRecovery
and autoSkipNonRecoverableData
◦ Could one of them help? (do they serve the same purpose). It seems like autoSkipNonRecoverableData
be avoided is part of the legacy codebase
◦ Are they both destructive (data loss permanently)? I opened a PR to add managedLedgerForceRecovery
to the broker conf, thanks for the info about the risks it involves Lari
◦ Is one better than the other?
Thank you for your helpGaurav Ashok
09/04/2025, 11:12 AMCong Zhao
09/08/2025, 11:56 AMJiji K
09/09/2025, 6:41 AM