You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@dubbo.apache.org by "yanghongge (GitHub)" <gi...@apache.org> on 2018/11/26 03:22:03 UTC

[GitHub] [incubator-dubbo] yanghongge opened issue #2830: setSkyWalkingDynamicField(java.lang.Object) not found

### Environment

* Dubbo version: 2.6.0+
* Operating System version: Centos7
* Java version: 1.8
* skywalking 6.0

[https://github.com/apache/incubator-skywalking/issues/1955](url)



[ Full content available at: https://github.com/apache/incubator-dubbo/issues/2830 ]
This message was relayed via gitbox.apache.org for notifications@dubbo.apache.org


[GitHub] [incubator-dubbo] chickenlj commented on issue #2830: setSkyWalkingDynamicField(java.lang.Object) not found

Posted by "chickenlj (GitHub)" <gi...@apache.org>.
Can you please commit a simple demo to your private repo so that we can reproduce your problem?

[ Full content available at: https://github.com/apache/incubator-dubbo/issues/2830 ]
This message was relayed via gitbox.apache.org for notifications@dubbo.apache.org


[GitHub] [incubator-dubbo] wu-sheng commented on issue #2830: setSkyWalkingDynamicField(java.lang.Object) not found

Posted by "wu-sheng (GitHub)" <gi...@apache.org>.
SkyWalking is providing a patch for avoiding dubbo's bug. We haven't 100% sure why dubbo have this issue, see https://github.com/apache/incubator-skywalking/pull/2064 . @ascrutae You point to dubbo 2064 issue.

This is what we found
1. SkyWalking agent will manipulate the dubbo service class, adding `setSkyWalkingDynamicField` and `getSkyWalkingDynamicField`.
1. Dubbo tries to enhanced the classes too, but magically, dubbo core use the class skeleton from Class file, not SkyWalking agent enhanced. This trigger the conflict and exception.

My question is, does Dubbo read class file by itself? If yes, then this is a very risky mechanism, all agents have possibilities to manipulate class when classloader loads it. So the class in memory is not as same as in file. You can't depend on this, and should follow the class skeleton from classloader.

Right now, SkyWalking's patch plugin forces **override** dubbo core to ignore SkyWalking's dynamic methods. It could solve problem for skywalking's users, and that is the best we can do. I hope dubbo team could dive deeper for this, and solve this forever.

[ Full content available at: https://github.com/apache/incubator-dubbo/issues/2830 ]
This message was relayed via gitbox.apache.org for notifications@dubbo.apache.org


[GitHub] [incubator-dubbo] beiwei30 closed issue #2830: setSkyWalkingDynamicField(java.lang.Object) not found

Posted by "beiwei30 (GitHub)" <gi...@apache.org>.
[ issue closed by beiwei30 ]

[ Full content available at: https://github.com/apache/incubator-dubbo/issues/2830 ]
This message was relayed via gitbox.apache.org for notifications@dubbo.apache.org


[GitHub] [incubator-dubbo] beiwei30 commented on issue #2830: setSkyWalkingDynamicField(java.lang.Object) not found

Posted by "beiwei30 (GitHub)" <gi...@apache.org>.
let's keep it open for further investigation later.

[ Full content available at: https://github.com/apache/incubator-dubbo/issues/2830 ]
This message was relayed via gitbox.apache.org for notifications@dubbo.apache.org


[GitHub] [incubator-dubbo] ascrutae commented on issue #2830: setSkyWalkingDynamicField(java.lang.Object) not found

Posted by "ascrutae (GitHub)" <gi...@apache.org>.
Ref #2064

[ Full content available at: https://github.com/apache/incubator-dubbo/issues/2830 ]
This message was relayed via gitbox.apache.org for notifications@dubbo.apache.org


[GitHub] [incubator-dubbo] wu-sheng commented on issue #2830: setSkyWalkingDynamicField(java.lang.Object) not found

Posted by "wu-sheng (GitHub)" <gi...@apache.org>.
I think this should be fixed by dubbo to avoid this issue. SkyWalking just provided a high priority patch to our plugin, but you should know, copy some codes and change them are really a bad idea.

[ Full content available at: https://github.com/apache/incubator-dubbo/issues/2830 ]
This message was relayed via gitbox.apache.org for notifications@dubbo.apache.org


[GitHub] [incubator-dubbo] beiwei30 commented on issue #2830: setSkyWalkingDynamicField(java.lang.Object) not found

Posted by "beiwei30 (GitHub)" <gi...@apache.org>.
since the PR has been merged on skywalking side, I will close this bug.

[ Full content available at: https://github.com/apache/incubator-dubbo/issues/2830 ]
This message was relayed via gitbox.apache.org for notifications@dubbo.apache.org