skywalking: pulsar plugin breaks trace on the consumer size

Please answer these questions before submitting your issue.

  • Why do you submit this issue?
  • Question or discussion
  • Bug
  • Requirement
  • Feature or performance improvement

Question

  • What do you want to know?

Bug

  • Which version of SkyWalking, OS, and JRE? SkyWalking:8.4.0 OS:MacOS JRE:11

  • Which company or project?

  • What happened? If possible, provide a way to reproduce the error. e.g. demo application, component version.

Pulsar plugin is only enhance org.apache.pulsar.client.impl.ConsumerImpl class, however pulsar will use org.apache.pulsar.client.impl.MultiTopicsConsumerImpl class to consume when topic’s partition size greater than 0. So the trace will be breaked on consumer side.

In org.apache.pulsar.client.impl.MultiTopicsConsumerImpl class, pulsar will new some org.apache.pulsar.client.impl.ConsumerImpl class instances to receive messages, but consumption process is in the internal executor while callback to listener in the external executor.

The entry method is org.apache.pulsar.client.impl.PulsarClientImpl#doSingleTopicSubscribeAsync.


Requirement or improvement

  • Please describe your requirements or improvement suggestions.

About this issue

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

Most upvoted comments

@wu-sheng @codelipenghui I found a bad case when the number of subject partitions is greater than 1, it will lead to errors on the consumer side. I need to fix it on a new branch and submit another PR tomorrow. Of course I will write more test scenarios to cover the bad case. Sorry for this.