Skip to content

Commit

Permalink
Merge pull request apache#1453, restore the bug that attachment has n…
Browse files Browse the repository at this point in the history
…ot been updated in the RpcContext when the Dubbo built-in retry mechanism is triggered.
  • Loading branch information
yizhenqiang authored and chickenlj committed Jun 5, 2018
1 parent fcd67d6 commit 2e8141f
Showing 1 changed file with 8 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,14 @@ public Result invoke(Invocation inv) throws RpcException {
}
Map<String, String> context = RpcContext.getContext().getAttachments();
if (context != null) {
invocation.addAttachmentsIfAbsent(context);
/**
* invocation.addAttachmentsIfAbsent(context){@link RpcInvocation#addAttachmentsIfAbsent(Map)}should not be used here,
* because the {@link RpcContext#setAttachment(String, String)} is passed in the Filter when the call is triggered
* by the built-in retry mechanism of the Dubbo. The attachment to update RpcContext will no longer work, which is
* a mistake in most cases (for example, through Filter to RpcContext output traceId and spanId and other information).
* yizhenqiang 20180310
*/
invocation.addAttachments(context);
}
if (getUrl().getMethodParameter(invocation.getMethodName(), Constants.ASYNC_KEY, false)) {
invocation.setAttachment(Constants.ASYNC_KEY, Boolean.TRUE.toString());
Expand Down

0 comments on commit 2e8141f

Please sign in to comment.