记录一次Dubbo升级导致的StackOverflowError问题
在一次使用中 同时采用了Mybatis plus 和 Dubbo
并且对同一个service进行操作的时候 出现的该问题,初步判定可能是实例化检查 泛型导致重复递归。抛出的StackOverflowError:

注:该问题在3.0.11版本未出现
以下为问题复现,部分摘抄自Github上另一位发现问题的兄弟:
https://github.com/apache/dubbo/issues/11560
Environment
Dubbo version: 3.1.x
Operating System version: macOs 13.1
Java version: 1.8
Original class com.baomidou.mybatisplus.extension.conditions.AbstractChainWrapper in mybatis-plus-extension
1.Defines a class like
public abstract class DemoService4<T, R, Param extends DemoService5<T, R, Param>> {
public DemoService4() {
}
public DemoService5<T, R, Param> getWrapper() {
return null;
}
}
2.Define another class like
public abstract class DemoService5<T, R, Children extends DemoService5<T, R, Children>> {
}
Actual Behavior


checkType 陷入了一个递归检查泛形的循环…从而导致了堆栈溢出。
目前已知的解决:
1.将DubboService 与 Mybatis plus 实现的类分开 或者 包装一下;
2.升级版本 3.1.6 关闭检查部分 或者 降版本至3.0.11;
3.等待Dubbo 后续版本迭代。