profile
viewpoint
If you are wondering where the data of this site comes from, please visit https://api.github.com/users/lhotari/events. GitMemory does not store any data, but only uses NGINX to cache data for a period of time. The idea behind GitMemory is simply to give users a better reading experience.
Lari Hotari lhotari DataStax Espoo, Finland OSS contributor, Senior Software Engineer @ DataStax

kageiit/android-studio-gradle-test 47

A test project with a structure to stress test and find out issues in Android Studio and Gradle

lhotari/akka-http-health 40

Library for creating health endpoint checks for Akka Http applications

lhotari/action-upterm 26

Debug your GitHub Actions via SSH by using upterm/tmux to get access to the runner system itself.

datastax/pulsar-heartbeat 9

Pulsar Heartbeat monitors Pulsar cluster availability, tracks latency of Pulsar message pubsub, and reports failures of the Pulsar cluster. It produces synthetic workloads to measure end-to-end message pubsub latency.

datastax/pulsar-admin-console 8

Pulsar Admin Console is a web based UI that administrates topics, namespaces, sources, sinks and various aspects of Apache Pulsar features.

datastax/pulsar 5

Apache Pulsar - distributed pub-sub messaging system

lhotari/dbcontainers 4

opinionated way to integrate TestContainers to Spring Boot integration tests

lhotari/betamax 3

A Groovy record/playback proxy for testing applications that access external HTTP resources. Inspired by Ruby's VCR

datastax/burnell 2

A proxy to Pulsar cluster

lhotari/build-size-gradle-plugin 1

Gradle plugin for generating JSON that shows build size and structure but doesn't reveal content. Names are masked.

issue commentapache/pulsar

Websocket Encryption

websocket just pass through message payload with key to client without modifying anything.

kjaggann

comment created time in an hour

pull request commentapache/pulsar

PIP-45: Migrate OwnershipCache to use MetadataStore

@merlimat thanks for your contribution. For this PR, do we need to update docs?

No docs updates, this is just an internal refactoring.

merlimat

comment created time in an hour

PR opened apache/pulsar

[pulsar-io] pass pulsar client via context to connector

<!--

Contribution Checklist

  • Name the pull request in the form "[Issue XYZ][component] Title of the pull request", where XYZ should be replaced by the actual issue number. Skip Issue XYZ if there is no associated github issue for this pull request. Skip component if you are unsure about which is the best component. E.g. [docs] Fix typo in produce method.

  • Fill out the template below to describe the changes contributed by the pull request. That will give reviewers the context they need to do the review.

  • Each pull request should address only one issue, not mix up code from multiple issues.

  • Each commit in the pull request has a meaningful commit message

  • Once all items of the checklist are addressed, remove the above text and this checklist, leaving only the filled out template below.

(The sections below can be removed for hotfixes of typos) -->

(If this PR fixes a github issue, please add Fixes #<xyz>.)

Fixes #<xyz>

(or if this PR is one task of a github issue, please add Master Issue: #<xyz> to link to the master issue.)

Master Issue: #<xyz>

Motivation

solve #8668

Modifications

Expose PulsarClient via BaseContext, and let connectors use the inherited pulsar client from function worker

Verifying this change

  • [ ] Make sure that the change passes the CI checks.

(Please pick either of the following options)

This change is a trivial rework / code cleanup without any test coverage.

(or)

This change is already covered by existing tests, such as (please describe tests).

(or)

This change added tests and can be verified as follows:

(example:)

  • Added integration tests for end-to-end deployment with large payloads (10MB)
  • Extended integration test for recovery after broker failure

Does this pull request potentially affect one of the following parts:

  • The public API: SourceContext and SinkContext need to implement the getPulsarClient method
+35 -6

0 comment

7 changed files

pr created time in an hour

pull request commentapache/pulsar

[Tests] Add test for TimeAverageBrokerData

/pulsarbot rerun-failure-checks

mattisonchao

comment created time in an hour

pull request commentapache/pulsar

[Broker] Fixed the incorrectly used string format method.

/pulsarbot rerun-failure-checks

mattisonchao

comment created time in 2 hours

pull request commentapache/pulsar

[Broker] Fixed the incorrectly used logger.

/pulsarbot rerun-failure-checks

mattisonchao

comment created time in 2 hours

pull request commentapache/pulsar

[Broker] Fixed the incorrectly used logger.

@lhotari I will do that, thanks to you ~

mattisonchao

comment created time in 2 hours

issue openedapache/pulsar

linker error for curl when using pulsar lib

Describe the bug Can anyone help me here? I built the pulsar-client-cpp from source, but when i try to compile my project with the libpulsar.a files, i get linker errors all over.

I was able to resolve it by adding the curl library as a target_link in my own CMake, but I've been told this a cheat and i need to resolve the dependency between pulsar and curl.

The linker errors i see are as below...

Undefined symbols for architecture x86_64:
  "_curl_easy_cleanup", referenced from:
      pulsar::ClientCredentialFlow::initialize() in libpulsar.a(AuthOauth2.cc.o)
      pulsar::ClientCredentialFlow::authenticate() in libpulsar.a(AuthOauth2.cc.o)
      pulsar::HTTPLookupService::sendHTTPRequest(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) in libpulsar.a(HTTPLookupService.cc.o)
      pulsar::ZTSClient::getRoleToken() const in libpulsar.a(ZTSClient.cc.o)
  "_curl_easy_escape", referenced from:
      pulsar::TopicName::getEncodedName(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in libpulsar.a(TopicName.cc.o)
  "_curl_easy_getinfo", referenced from:
      pulsar::ClientCredentialFlow::initialize() in libpulsar.a(AuthOauth2.cc.o)
      pulsar::ClientCredentialFlow::authenticate() in libpulsar.a(AuthOauth2.cc.o)
      pulsar::HTTPLookupService::sendHTTPRequest(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) in libpulsar.a(HTTPLookupService.cc.o)
      pulsar::ZTSClient::getRoleToken() const in libpulsar.a(ZTSClient.cc.o)
  "_curl_easy_init", referenced from:
      pulsar::ClientCredentialFlow::initialize() in libpulsar.a(AuthOauth2.cc.o)
      pulsar::ClientCredentialFlow::authenticate() in libpulsar.a(AuthOauth2.cc.o)
      pulsar::HTTPLookupService::sendHTTPRequest(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) in libpulsar.a(HTTPLookupService.cc.o)
      pulsar::TopicName::getCurlHandle() in libpulsar.a(TopicName.cc.o)
      pulsar::TopicName::getEncodedName(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in libpulsar.a(TopicName.cc.o)
      pulsar::ZTSClient::getRoleToken() const in libpulsar.a(ZTSClient.cc.o)
  "_curl_easy_perform", referenced from:
      pulsar::ClientCredentialFlow::initialize() in libpulsar.a(AuthOauth2.cc.o)
      pulsar::ClientCredentialFlow::authenticate() in libpulsar.a(AuthOauth2.cc.o)
      pulsar::HTTPLookupService::sendHTTPRequest(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) in libpulsar.a(HTTPLookupService.cc.o)
      pulsar::ZTSClient::getRoleToken() const in libpulsar.a(ZTSClient.cc.o)
  "_curl_easy_setopt", referenced from:
      pulsar::ClientCredentialFlow::initialize() in libpulsar.a(AuthOauth2.cc.o)
      pulsar::ClientCredentialFlow::authenticate() in libpulsar.a(AuthOauth2.cc.o)
      pulsar::HTTPLookupService::sendHTTPRequest(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) in libpulsar.a(HTTPLookupService.cc.o)
      pulsar::ZTSClient::getRoleToken() const in libpulsar.a(ZTSClient.cc.o)
  "_curl_free", referenced from:
      pulsar::TopicName::getEncodedName(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in libpulsar.a(TopicName.cc.o)
  "_curl_global_cleanup", referenced from:
      pulsar::HTTPLookupService::CurlInitializer::~CurlInitializer() in libpulsar.a(HTTPLookupService.cc.o)
      pulsar::HTTPLookupService::CurlInitializer::~CurlInitializer() in libpulsar.a(HTTPLookupService.cc.o)
  "_curl_global_init", referenced from:
      pulsar::HTTPLookupService::CurlInitializer::CurlInitializer() in libpulsar.a(HTTPLookupService.cc.o)
      pulsar::HTTPLookupService::CurlInitializer::CurlInitializer() in libpulsar.a(HTTPLookupService.cc.o)
      __GLOBAL__sub_I_HTTPLookupService.cc in libpulsar.a(HTTPLookupService.cc.o)
  "_curl_slist_append", referenced from:
      pulsar::ClientCredentialFlow::initialize() in libpulsar.a(AuthOauth2.cc.o)
      pulsar::ClientCredentialFlow::authenticate() in libpulsar.a(AuthOauth2.cc.o)
      pulsar::HTTPLookupService::sendHTTPRequest(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) in libpulsar.a(HTTPLookupService.cc.o)
      pulsar::ZTSClient::getRoleToken() const in libpulsar.a(ZTSClient.cc.o)
  "_curl_slist_free_all", referenced from:
      pulsar::ClientCredentialFlow::initialize() in libpulsar.a(AuthOauth2.cc.o)
      pulsar::ClientCredentialFlow::authenticate() in libpulsar.a(AuthOauth2.cc.o)
      pulsar::HTTPLookupService::sendHTTPRequest(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) in libpulsar.a(HTTPLookupService.cc.o)
      pulsar::ZTSClient::getRoleToken() const in libpulsar.a(ZTSClient.cc.o)

i would very much appreciate this and can provide more information as necessary. I am running on MacOS bigSur 11.4.

Expected behavior Project to compile and link as normal.

Desktop (please complete the following information):

  • OS: MacOS bigSur 11.4

created time in 2 hours

issue commentapache/pulsar

[C++ client] Deadletter queue functionality

This functionality would be much appreciated. I'm mainly interested because adding functionality to the C++ client would enable the functionality in the nodejs client as well.

frejonb

comment created time in 3 hours

push eventapache/pulsar

Lari Hotari

commit sha b3545cc3b9ecd44ea4cfb1cb8735c65f6d85fbe9

[Tests] Fix flaky test ResourceGroupConfigListenerTest (#11048) Fixes #11045 ### Motivation Fixes flaky test ResourceGroupConfigListenerTest ### Modifications - remove `atMost` and rely on Awaitility default of 10 seconds. - refactor deletion test to not use Thread.sleep - first check that all resource groups exist - then delete

view details

push time in 3 hours

issue closedapache/pulsar

Flaky-test: ResourceGroupConfigListenerTest.testResourceGroupAttachToNamespace

<!---

Instructions for reporting a flaky test using this issue template:

  1. Replace [test class] in title and body with the test class name
  2. Replace [test method] in title and body with the test method that failed. Multiple methods are flaky, remove the content that refers to the test method.
  3. Replace "url here" with a url to an example failure. In the Github Actions workflow run logs, you can right click on the line number to copy a link to the line. Example of such url is https://github.com/apache/pulsar/pull/8892/checks?check_run_id=1531075794#step:9:377 . The logs are available for a limited amount of time (usually for a few weeks).
  4. Replace "relevant parts of the exception stacktrace here" with the a few lines of the stack trace that shows at leat the exception message and the line of test code where the stacktrace occured.
  5. Replace "full exception stacktrace here" with the full exception stacktrace from logs. This section will be hidded by default.
  6. Remove all unused fields / content to unclutter the reported issue. Remove this comment too.

--> ResourceGroupConfigListenerTest is flaky. The testResourceGroupAttachToNamespace test method fails sporadically.

example failure

Error:  Tests run: 14, Failures: 1, Errors: 0, Skipped: 13, Time elapsed: 8.365 s <<< FAILURE! - in org.apache.pulsar.broker.resourcegroup.ResourceGroupConfigListenerTest
Error:  testResourceGroupAttachToNamespace(org.apache.pulsar.broker.resourcegroup.ResourceGroupConfigListenerTest)  Time elapsed: 1.058 s  <<< FAILURE!
org.awaitility.core.ConditionTimeoutException: Assertion condition defined as a lambda expression in org.apache.pulsar.broker.resourcegroup.ResourceGroupConfigListenerTest expected object to not be null within 1 seconds.
	at org.awaitility.core.ConditionAwaiter.await(ConditionAwaiter.java:165)
	at org.awaitility.core.AssertionCondition.await(AssertionCondition.java:119)
	at org.awaitility.core.AssertionCondition.await(AssertionCondition.java:31)
	at org.awaitility.core.ConditionFactory.until(ConditionFactory.java:895)
	at org.awaitility.core.ConditionFactory.untilAsserted(ConditionFactory.java:679)
	at org.apache.pulsar.broker.resourcegroup.ResourceGroupConfigListenerTest.createResourceGroup(ResourceGroupConfigListenerTest.java:67)
	at org.apache.pulsar.broker.resourcegroup.ResourceGroupConfigListenerTest.testResourceGroupAttachToNamespace(ResourceGroupConfigListenerTest.java:122)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:132)
	at org.testng.internal.InvokeMethodRunnable.runOne(InvokeMethodRunnable.java:45)
	at org.testng.internal.InvokeMethodRunnable.call(InvokeMethodRunnable.java:73)
	at org.testng.internal.InvokeMethodRunnable.call(InvokeMethodRunnable.java:11)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.lang.AssertionError: expected object to not be null
	at org.testng.Assert.fail(Assert.java:99)
	at org.testng.Assert.assertNotNull(Assert.java:942)
	at org.testng.Assert.assertNotNull(Assert.java:926)
	at org.apache.pulsar.broker.resourcegroup.ResourceGroupConfigListenerTest.lambda$createResourceGroup$0(ResourceGroupConfigListenerTest.java:70)
	at org.awaitility.core.AssertionCondition.lambda$new$0(AssertionCondition.java:53)
	at org.awaitility.core.ConditionAwaiter$ConditionPoller.call(ConditionAwaiter.java:222)
	at org.awaitility.core.ConditionAwaiter$ConditionPoller.call(ConditionAwaiter.java:209)
	... 4 more

closed time in 3 hours

lhotari

PR merged apache/pulsar

Reviewers
[Tests] Fix flaky test ResourceGroupConfigListenerTest flaky-tests

Fixes #11045

Motivation

Fixes flaky test ResourceGroupConfigListenerTest

Modifications

  • remove atMost and rely on Awaitility default of 10 seconds.
  • refactor deletion test to not use Thread.sleep
    • first check that all resource groups exist
    • then delete
+18 -18

4 comments

1 changed file

lhotari

pr closed time in 3 hours

push eventapache/pulsar

Neng Lu

commit sha 999329a8ffa174212bf2285872a9a93e4ae61a02

[Functions] reorganize the context hierarchy for functions (#10631) ### Motivation Currently the context relationship for function, source and sink is not well defined. This prevents some common features to be added once for all and creates some confusion, code duplication in the current repo. As demonstrated in the following graph, this PR changes the hierarchy from left to right. By introducing a common base context, it help solving some issues we are seeing. The base context provides common access to pulsar cluster, state, metrics, and meta-data to make sure all components can reuse it. ![context hierarchy](https://user-images.githubusercontent.com/16407807/118730483-8ebf5200-b7ec-11eb-9220-d41261f148bb.png) ### Modifications - Remove `ConnectorContext` interface. - Introduce a `BaseContext` interface. - Update existing `Context`, `SourceContext`, `SinkContext` interface to extend the new common interface.

view details

push time in 3 hours

PR merged apache/pulsar

[Functions] reorganize the context hierarchy for functions component/functions

Motivation

Currently the context relationship for function, source and sink is not well defined. This prevents some common features to be added once for all and creates some confusion, code duplication in the current repo. As demonstrated in the following graph, this PR changes the hierarchy from left to right. By introducing a common base context, it help solving some issues we are seeing. The base context provides common access to pulsar cluster, state, metrics, and meta-data to make sure all components can reuse it.

context hierarchy

Modifications

  • Remove ConnectorContext interface.
  • Introduce a BaseContext interface.
  • Update existing Context, SourceContext, SinkContext interface to extend the new common interface.

Verifying this change

  • [ ] Make sure that the change passes the CI checks.

This change is a trivial rework / code cleanup without any test coverage.

Does this pull request potentially affect one of the following parts:

If yes was chosen, please highlight the changes

  • Dependencies (does it add or upgrade a dependency): (yes / no)
  • The public API:
+110 -248

6 comments

5 changed files

nlu90

pr closed time in 3 hours

issue openedapache/pulsar

start apache-pulsar-2.7.2 get Exception

Describe the bug run "bin/pulsar standalone" in terminal getting the following Exception.

21:25:19.829 [main] INFO org.apache.zookeeper.server.NIOServerCnxnFactory - binding to port 0.0.0.0/0.0.0.0:2181 21:25:19.854 [main] INFO org.apache.zookeeper.server.persistence.FileSnap - Reading snapshot data/standalone/zookeeper/version-2/snapshot.0 21:25:19.869 [main] INFO org.apache.zookeeper.server.persistence.FileTxnSnapLog - Snapshotting: 0x0 to data/standalone/zookeeper/version-2/snapshot.0 [AppClassLoader@7ad041f3] info processing reweavable type org.apache.zookeeper.server.FinalRequestProcessor: org/apache/zookeeper/server/FinalRequestProcessor.java [AppClassLoader@7ad041f3] info successfully verified type org.apache.pulsar.zookeeper.FinalRequestProcessorAspect exists. Originates from org/apache/pulsar/zookeeper/FinalRequestProcessorAspect.java java.lang.reflect.InvocationTargetException at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:567) at org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor.initializeForJava11(ClassLoaderWeavingAdaptor.java:1073) at org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor.defineClass(ClassLoaderWeavingAdaptor.java:1100) at org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor.access$300(ClassLoaderWeavingAdaptor.java:66) at org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor$SimpleGeneratedClassHandler.acceptClass(ClassLoaderWeavingAdaptor.java:150) at org.aspectj.weaver.tools.WeavingAdaptor$WeavingClassFileProvider$1.acceptResult(WeavingAdaptor.java:920) at org.aspectj.weaver.bcel.BcelWeaver.weaveAndNotify(BcelWeaver.java:1428) at org.aspectj.weaver.bcel.BcelWeaver.weave(BcelWeaver.java:1196) at org.aspectj.weaver.tools.WeavingAdaptor.getWovenBytes(WeavingAdaptor.java:551) at org.aspectj.weaver.tools.WeavingAdaptor.weaveClass(WeavingAdaptor.java:387) at org.aspectj.weaver.loadtime.Aj.preProcess(Aj.java:116) at org.aspectj.weaver.loadtime.ClassPreProcessorAgentAdapter.transform(ClassPreProcessorAgentAdapter.java:51) at java.instrument/java.lang.instrument.ClassFileTransformer.transform(ClassFileTransformer.java:244) at java.instrument/sun.instrument.TransformerManager.transform(TransformerManager.java:188) at java.instrument/sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:565) at java.base/java.lang.ClassLoader.defineClass1(Native Method) at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1010) at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150) at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:855) at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:753) at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:676) at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:634) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:182) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:519) at org.apache.zookeeper.server.ZooKeeperServer.setupRequestProcessors(ZooKeeperServer.java:468) at org.apache.zookeeper.server.ZooKeeperServer.startup(ZooKeeperServer.java:459) at org.apache.zookeeper.server.NIOServerCnxnFactory.startup(NIOServerCnxnFactory.java:765) at org.apache.zookeeper.server.ServerCnxnFactory.startup(ServerCnxnFactory.java:98) at org.apache.pulsar.zookeeper.LocalBookkeeperEnsemble.runZookeeper(LocalBookkeeperEnsemble.java:193) at org.apache.pulsar.zookeeper.LocalBookkeeperEnsemble.startStandalone(LocalBookkeeperEnsemble.java:428) at org.apache.pulsar.PulsarStandalone.start(PulsarStandalone.java:258) at org.apache.pulsar.PulsarStandaloneStarter.main(PulsarStandaloneStarter.java:115) Caused by: java.lang.IllegalAccessException: module java.base does not open java.lang to unnamed module @16c0663d at java.base/java.lang.invoke.MethodHandles.privateLookupIn(MethodHandles.java:260) ... 35 more java.lang.NullPointerException: Cannot invoke "java.lang.reflect.Method.invoke(Object, Object[])" because "org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor.bindTo_Method" is null at org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor.defineClass(ClassLoaderWeavingAdaptor.java:1103) at org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor.access$300(ClassLoaderWeavingAdaptor.java:66) at org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor$SimpleGeneratedClassHandler.acceptClass(ClassLoaderWeavingAdaptor.java:150) at org.aspectj.weaver.tools.WeavingAdaptor$WeavingClassFileProvider$1.acceptResult(WeavingAdaptor.java:920) at org.aspectj.weaver.bcel.BcelWeaver.weaveAndNotify(BcelWeaver.java:1428) at org.aspectj.weaver.bcel.BcelWeaver.weave(BcelWeaver.java:1196) at org.aspectj.weaver.tools.WeavingAdaptor.getWovenBytes(WeavingAdaptor.java:551) at org.aspectj.weaver.tools.WeavingAdaptor.weaveClass(WeavingAdaptor.java:387) at org.aspectj.weaver.loadtime.Aj.preProcess(Aj.java:116) at org.aspectj.weaver.loadtime.ClassPreProcessorAgentAdapter.transform(ClassPreProcessorAgentAdapter.java:51) at java.instrument/java.lang.instrument.ClassFileTransformer.transform(ClassFileTransformer.java:244) at java.instrument/sun.instrument.TransformerManager.transform(TransformerManager.java:188) at java.instrument/sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:565) at java.base/java.lang.ClassLoader.defineClass1(Native Method) at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1010) at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150) at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:855) at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:753) at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:676) at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:634) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:182) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:519) at org.apache.zookeeper.server.ZooKeeperServer.setupRequestProcessors(ZooKeeperServer.java:468) at org.apache.zookeeper.server.ZooKeeperServer.startup(ZooKeeperServer.java:459) at org.apache.zookeeper.server.NIOServerCnxnFactory.startup(NIOServerCnxnFactory.java:765) at org.apache.zookeeper.server.ServerCnxnFactory.startup(ServerCnxnFactory.java:98) at org.apache.pulsar.zookeeper.LocalBookkeeperEnsemble.runZookeeper(LocalBookkeeperEnsemble.java:193) at org.apache.pulsar.zookeeper.LocalBookkeeperEnsemble.startStandalone(LocalBookkeeperEnsemble.java:428) at org.apache.pulsar.PulsarStandalone.start(PulsarStandalone.java:258) at org.apache.pulsar.PulsarStandaloneStarter.main(PulsarStandaloneStarter.java:115) [AppClassLoader@7ad041f3] warning define generated class failed -- (NullPointerException) Cannot invoke "java.lang.reflect.Method.invoke(Object, Object[])" because "org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor.bindTo_Method" is null Cannot invoke "java.lang.reflect.Method.invoke(Object, Object[])" because "org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor.bindTo_Method" is null java.lang.NullPointerException: Cannot invoke "java.lang.reflect.Method.invoke(Object, Object[])" because "org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor.bindTo_Method" is null at org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor.defineClass(ClassLoaderWeavingAdaptor.java:1103) at org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor.access$300(ClassLoaderWeavingAdaptor.java:66) at org.aspectj.weaver.loadtime.ClassLoaderWeavingAdaptor$SimpleGeneratedClassHandler.acceptClass(ClassLoaderWeavingAdaptor.java:150) at org.aspectj.weaver.tools.WeavingAdaptor$WeavingClassFileProvider$1.acceptResult(WeavingAdaptor.java:920) at org.aspectj.weaver.bcel.BcelWeaver.weaveAndNotify(BcelWeaver.java:1428) at org.aspectj.weaver.bcel.BcelWeaver.weave(BcelWeaver.java:1196) at org.aspectj.weaver.tools.WeavingAdaptor.getWovenBytes(WeavingAdaptor.java:551) at org.aspectj.weaver.tools.WeavingAdaptor.weaveClass(WeavingAdaptor.java:387) at org.aspectj.weaver.loadtime.Aj.preProcess(Aj.java:116) at org.aspectj.weaver.loadtime.ClassPreProcessorAgentAdapter.transform(ClassPreProcessorAgentAdapter.java:51) at java.instrument/java.lang.instrument.ClassFileTransformer.transform(ClassFileTransformer.java:244) at java.instrument/sun.instrument.TransformerManager.transform(TransformerManager.java:188) at java.instrument/sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:565) at java.base/java.lang.ClassLoader.defineClass1(Native Method) at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1010) at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150) at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:855) at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:753) at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:676) at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:634) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:182) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:519) at org.apache.zookeeper.server.ZooKeeperServer.setupRequestProcessors(ZooKeeperServer.java:468) at org.apache.zookeeper.server.ZooKeeperServer.startup(ZooKeeperServer.java:459) at org.apache.zookeeper.server.NIOServerCnxnFactory.startup(NIOServerCnxnFactory.java:765) at org.apache.zookeeper.server.ServerCnxnFactory.startup(ServerCnxnFactory.java:98) at org.apache.pulsar.zookeeper.LocalBookkeeperEnsemble.runZookeeper(LocalBookkeeperEnsemble.java:193) at org.apache.pulsar.zookeeper.LocalBookkeeperEnsemble.startStandalone(LocalBookkeeperEnsemble.java:428) at org.apache.pulsar.PulsarStandalone.start(PulsarStandalone.java:258) at org.apache.pulsar.PulsarStandaloneStarter.main(PulsarStandaloneStarter.java:115)

21:25:19.991 [main] ERROR org.apache.pulsar.PulsarStandaloneStarter - Failed to start pulsar service. java.lang.NoClassDefFoundError: org/apache/zookeeper/server/FinalRequestProcessor$AjcClosure1 at org.apache.zookeeper.server.ZooKeeperServer.setupRequestProcessors(ZooKeeperServer.java:468) ~[org.apache.pulsar-pulsar-zookeeper-2.7.2.jar:2.7.2] at org.apache.zookeeper.server.ZooKeeperServer.startup(ZooKeeperServer.java:459) ~[org.apache.pulsar-pulsar-zookeeper-2.7.2.jar:2.7.2] at org.apache.zookeeper.server.NIOServerCnxnFactory.startup(NIOServerCnxnFactory.java:765) ~[org.apache.pulsar-pulsar-zookeeper-2.7.2.jar:2.7.2] at org.apache.zookeeper.server.ServerCnxnFactory.startup(ServerCnxnFactory.java:98) ~[org.apache.pulsar-pulsar-zookeeper-2.7.2.jar:2.7.2] at org.apache.pulsar.zookeeper.LocalBookkeeperEnsemble.runZookeeper(LocalBookkeeperEnsemble.java:193) ~[org.apache.pulsar-pulsar-zookeeper-utils-2.7.2.jar:2.7.2] at org.apache.pulsar.zookeeper.LocalBookkeeperEnsemble.startStandalone(LocalBookkeeperEnsemble.java:428) ~[org.apache.pulsar-pulsar-zookeeper-utils-2.7.2.jar:2.7.2] at org.apache.pulsar.PulsarStandalone.start(PulsarStandalone.java:258) ~[org.apache.pulsar-pulsar-broker-2.7.2.jar:2.7.2] at org.apache.pulsar.PulsarStandaloneStarter.main(PulsarStandaloneStarter.java:115) [org.apache.pulsar-pulsar-broker-2.7.2.jar:2.7.2] Caused by: java.lang.ClassNotFoundException: org.apache.zookeeper.server.FinalRequestProcessor$AjcClosure1 at jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:636) ~[?:?] at jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:182) ~[?:?] at java.lang.ClassLoader.loadClass(ClassLoader.java:519) ~[?:?] ... 8 more 21:25:20.001 [Thread-0] ERROR org.apache.pulsar.PulsarStandaloneStarter - Shutdown failed: Cannot read the array length because "this.bs" is null java.lang.NullPointerException: Cannot read the array length because "this.bs" is null at org.apache.pulsar.zookeeper.LocalBookkeeperEnsemble.stop(LocalBookkeeperEnsemble.java:481) ~[org.apache.pulsar-pulsar-zookeeper-utils-2.7.2.jar:2.7.2] at org.apache.pulsar.PulsarStandaloneStarter$1.run(PulsarStandaloneStarter.java:98) [org.apache.pulsar-pulsar-broker-2.7.2.jar:2.7.2]

To Reproduce Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior A clear and concise description of what you expected to happen.

Screenshots If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS:

Additional context Add any other context about the problem here.

created time in 4 hours

push eventapache/pulsar

Pulsar Site Updater

commit sha 1414ca3749f79d37c37bd269a6d0b627c67c29e7

Updated site at revision 1a80429

view details

push time in 4 hours

PR opened apache/pulsar

[Broker] Fix async response filter

Motivation

Currently, the response filter couldn't process async responses correctlly, the response interceptor may be called before the async response returning.

Modifications

Add listener when using async request.

Verifying this change

Add a new test to verify the response interceptor is called after async response returning.

Does this pull request potentially affect one of the following parts:

If yes was chosen, please highlight the changes

  • Dependencies (does it add or upgrade a dependency): (no)
  • The public API: (no)
  • The schema: (no)
  • The default values of configurations: (no)
  • The wire protocol: (no)
  • The rest endpoints: (no)
  • The admin cli options: (no)
  • Anything that affects deployment: (no)
+175 -5

0 comment

6 changed files

pr created time in 5 hours

pull request commentapache/pulsar

[Tests] Fix flaky test ResourceGroupConfigListenerTest

/pulsarbot run-failure-checks

lhotari

comment created time in 6 hours

pull request commentapache/pulsar

[Tests] Fix flaky test ResourceGroupConfigListenerTest

/pulsarbot run-failure-checks

lhotari

comment created time in 6 hours

PR opened apache/pulsar

Add authoritative flag for topic policy to avoid redirect loop

Motivation

  1. Add authoritative flag for topic policy to avoid redirect loop
  2. Prevent set topic policy on a non-existing topic
  3. Prevent set topic policy on a partition of a partitioned topic
  4. Redirect to the broker which is the owner of the partition-0 for a partitioned topic when setting topic policy
  5. Don't remove policy cache when the topic removed from the broker, this will lead to the topic come back, but can't find the topic policy, since the namespace does not remove from the broker, we will not read from the system topic again. For this case, we already handled when the broker does not provide service for that namespace, the topic policy cache under the namespace will be removed.
+1055 -950

0 comment

5 changed files

pr created time in 7 hours

pull request commentapache/pulsar

[Security] Use adoptopenjdk:11-jdk base image for Pulsar docker images

@michaeljmarshall @sijie @rdhabalia @jerrypeng @codelipenghui PTAL

lhotari

comment created time in 8 hours

Pull request review commentapache/pulsar

[Transaction] Fix delete sub then delete pending ack.

 private void resetSubscriptionCursor(Subscription subscription, CompletableFutur     @Override     public CompletableFuture<Void> unsubscribe(String subscriptionName) {         CompletableFuture<Void> unsubscribeFuture = new CompletableFuture<>();+        getBrokerService().getManagedLedgerFactory().asyncDelete(TopicName.get(MLPendingAckStore

now, may don't think about the NonPersistentSubscription, this can be considered later.

congbobo184

comment created time in 8 hours

pull request commentapache/pulsar

[Tests] Fix flaky test ResourceGroupConfigListenerTest

/pulsarbot run-failure-checks

lhotari

comment created time in 8 hours

pull request commentapache/pulsar

[Tests] Fix flaky test ResourceGroupConfigListenerTest

LGTM +1

lhotari

comment created time in 8 hours

pull request commentapache/pulsar

[PIP-82] [pulsar-broker] Add resource-group configuration listener.

@lhotari apologies, I did not see test failures in my local runs. Thank you for making the tests more robust.

bharanic-dev

comment created time in 8 hours

push eventapache/pulsar

hangc0276

commit sha 1a80429c8ba12f0ce487d6fecbce62c3ca952e1a

fix flaky test in AdminApiOffloadTest (#11028)

view details

push time in 8 hours

push eventapache/pulsar

hangc0276

commit sha cad0542471468820eb60725d1784677e55bd5834

fix testng assertEquals parameter order (#11035)

view details

push time in 8 hours

PR merged apache/pulsar

Reviewers
fix testng assertEquals parameter order

Motivation

When change from Junit to TestNG, the assertEquals method's parameter order has changed. However in our current test, the assertEquals are misorder.

Modifications

  1. Change the order of TestNG#assertEquals parameter.
+58 -63

0 comment

5 changed files

hangc0276

pr closed time in 8 hours

push eventapache/pulsar

congbo

commit sha e092fb33699c227c110a9c707ff6fcfedfd1ee7a

[Transaction] Fix broker init transaction related topic. (#11022)

view details

push time in 8 hours

PR merged apache/pulsar

Reviewers
[Transaction] Fix broker init transaction related topic.

Motivation

now, transaction coordinator assign topic and pending ack and transaction log will init persistent topic when namespace unload, so we should load namespace bundle can't init the above topic.

implement

load namespace bundle filter related managedLedger topic.

Verifying this change

Add the tests for it

Does this pull request potentially affect one of the following parts: If yes was chosen, please highlight the changes

Dependencies (does it add or upgrade a dependency): (no) The public API: (no) The schema: (no) The default values of configurations: (no) The wire protocol: (no) The rest endpoints: (no) The admin cli options: (no) Anything that affects deployment: (no)

+157 -13

3 comments

4 changed files

congbobo184

pr closed time in 8 hours