pulsar: Failed to start standalone pulsar on Apple M1

Describe the bug I follow the document https://pulsar.apache.org/docs/en/standalone-docker/#start-pulsar-in-docker, run the following command:

docker run -it -p 6650:6650 \
  -p 8080:8080 \
  --mount source=pulsardata,target=/pulsar/data \
  --mount source=pulsarconf,target=/pulsar/conf \
  --name pulsar apachepulsar/pulsar:2.8.0 \
  bin/pulsar standalone --no-stream-storage --no-functions-worker

but got an error:

03:47:27.880 [main] ERROR org.apache.pulsar.PulsarStandaloneStarter - Failed to start pulsar service.
java.lang.ExceptionInInitializerError: null
	at org.eclipse.jetty.http.MimeTypes.<clinit>(MimeTypes.java:175) ~[org.eclipse.jetty-jetty-http-9.4.42.v20210604.jar:9.4.42.v20210604]
	at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:895) ~[org.eclipse.jetty-jetty-server-9.4.42.v20210604.jar:9.4.42.v20210604]
	at org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:288) ~[org.eclipse.jetty-jetty-servlet-9.4.42.v20210604.jar:9.4.42.v20210604]
	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73) ~[org.eclipse.jetty-jetty-util-9.4.42.v20210604.jar:9.4.42.v20210604]
	at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169) ~[org.eclipse.jetty-jetty-util-9.4.42.v20210604.jar:9.4.42.v20210604]
	at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:117) ~[org.eclipse.jetty-jetty-util-9.4.42.v20210604.jar:9.4.42.v20210604]
	at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:97) ~[org.eclipse.jetty-jetty-server-9.4.42.v20210604.jar:9.4.42.v20210604]
	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73) ~[org.eclipse.jetty-jetty-util-9.4.42.v20210604.jar:9.4.42.v20210604]
	at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169) ~[org.eclipse.jetty-jetty-util-9.4.42.v20210604.jar:9.4.42.v20210604]
	at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:117) ~[org.eclipse.jetty-jetty-util-9.4.42.v20210604.jar:9.4.42.v20210604]
	at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:97) ~[org.eclipse.jetty-jetty-server-9.4.42.v20210604.jar:9.4.42.v20210604]
	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73) ~[org.eclipse.jetty-jetty-util-9.4.42.v20210604.jar:9.4.42.v20210604]
	at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169) ~[org.eclipse.jetty-jetty-util-9.4.42.v20210604.jar:9.4.42.v20210604]
	at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:110) ~[org.eclipse.jetty-jetty-util-9.4.42.v20210604.jar:9.4.42.v20210604]
	at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:97) ~[org.eclipse.jetty-jetty-server-9.4.42.v20210604.jar:9.4.42.v20210604]
	at org.eclipse.jetty.server.handler.StatisticsHandler.doStart(StatisticsHandler.java:253) ~[org.eclipse.jetty-jetty-server-9.4.42.v20210604.jar:9.4.42.v20210604]
	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73) ~[org.eclipse.jetty-jetty-util-9.4.42.v20210604.jar:9.4.42.v20210604]
	at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169) ~[org.eclipse.jetty-jetty-util-9.4.42.v20210604.jar:9.4.42.v20210604]
	at org.eclipse.jetty.server.Server.start(Server.java:423) ~[org.eclipse.jetty-jetty-server-9.4.42.v20210604.jar:9.4.42.v20210604]
	at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:110) ~[org.eclipse.jetty-jetty-util-9.4.42.v20210604.jar:9.4.42.v20210604]
	at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:97) ~[org.eclipse.jetty-jetty-server-9.4.42.v20210604.jar:9.4.42.v20210604]
	at org.eclipse.jetty.server.Server.doStart(Server.java:387) ~[org.eclipse.jetty-jetty-server-9.4.42.v20210604.jar:9.4.42.v20210604]
	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73) ~[org.eclipse.jetty-jetty-util-9.4.42.v20210604.jar:9.4.42.v20210604]
	at org.apache.pulsar.broker.web.WebService.start(WebService.java:241) ~[org.apache.pulsar-pulsar-broker-2.8.0.jar:2.8.0]
	at org.apache.pulsar.broker.PulsarService.start(PulsarService.java:723) ~[org.apache.pulsar-pulsar-broker-2.8.0.jar:2.8.0]
	at org.apache.pulsar.PulsarStandalone.start(PulsarStandalone.java:296) ~[org.apache.pulsar-pulsar-broker-2.8.0.jar:2.8.0]
	at org.apache.pulsar.PulsarStandaloneStarter.main(PulsarStandaloneStarter.java:121) [org.apache.pulsar-pulsar-broker-2.8.0.jar:2.8.0]
Caused by: java.nio.charset.IllegalCharsetNameException: l;charset=iso-8859-1
	at java.nio.charset.Charset.checkName(Charset.java:308) ~[?:?]
	at java.nio.charset.Charset.lookup2(Charset.java:482) ~[?:?]
	at java.nio.charset.Charset.lookup(Charset.java:462) ~[?:?]
	at java.nio.charset.Charset.forName(Charset.java:526) ~[?:?]
	at org.eclipse.jetty.http.MimeTypes$Type.<init>(MimeTypes.java:107) ~[org.eclipse.jetty-jetty-http-9.4.42.v20210604.jar:9.4.42.v20210604]
	at org.eclipse.jetty.http.MimeTypes$Type.<clinit>(MimeTypes.java:67) ~[org.eclipse.jetty-jetty-http-9.4.42.v20210604.jar:9.4.42.v20210604]
	... 27 more

To Reproduce

Expected behavior

Screenshots

Desktop (please complete the following information):

  • OS: macOS Darwin ThearasdeMacBook-Pro-13.local 20.6.0 Darwin Kernel Version 20.6.0: Mon Aug 30 06:12:20 PDT 2021; root:xnu-7195.141.6~3/RELEASE_ARM64_T8101 arm64

Additional context Full log: error.log

About this issue

  • Original URL
  • State: closed
  • Created 3 years ago
  • Reactions: 2
  • Comments: 15 (10 by maintainers)

Most upvoted comments

yes, this comes from RocksDB JNI. Unfortunately, it seems that the API changed also, so that the lib version mentioned in the original rocksdb issue (rocksdbjni-6.25.3.jar) brings another error:

java.lang.NoSuchMethodError: 'org.rocksdb.ReadOptions org.rocksdb.ReadOptions.setIterateUpperBound(org.rocksdb.Slice)' at org.apache.bookkeeper.bookie.storage.ldb.KeyValueStorageRocksDB.getFloor(KeyValueStorageRocksDB.java:257) ~[org.apache.bookkeeper-bookkeeper-server-4.14.2.jar:4.14.2]

I looked at the history and the method signature has been changed to refer to some generic Slice implementation. Any chance to get this working on M1?

Failed to load RocksDB JNI library

This is resolved in >= 2.11.0. If we don’t pick the upgrade to previous versions, then that’s the final state.

@eolivelli @lhotari we can close this issue as closed. It works for me on Apple M1 machine with branch-2.11 or master.