Skip to content
Discussion options

You must be logged in to vote

Thanks for the detailed report and analysis. Confirmed, and fixed in apache/skywalking-java#848, which will ship in 9.9.0.

  • Since rocketmq-client 5.1.4, all three async send(..., SendCallback, ...) overloads wrap the callback in BackpressureSendCallBack, whether backpressure is enabled or not. So any async send with a callback is affected, not only msgTrace.
  • Only the wrapper reaches MQClientAPIImpl#sendMessage and gets the SendCallBackEnhanceInfo. Your sequence is right: the inner callback's beforeMethod throws the NPE, its unconditional stopSpan() pops the wrapper's span, and the wrapper's afterMethod throws the second NPE on the empty context. onException already handles the missing info.

Replies: 1 comment

Comment options

You must be logged in to vote
0 replies
Answer selected by wu-sheng
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
2 participants