WebFlux项目中导入sentinel-spring-webflux-adapter:1.8.0适配模块,项目每天都有好几个NPE,报错内容如下:
Caused by: java.lang.NullPointerException: value
at java.util.Objects.requireNonNull(Objects.java:228)
at reactor.util.context.Context0.put(Context0.java:30)
at com.alibaba.csp.sentinel.adapter.reactor.SentinelReactorSubscriber.currentContext(SentinelReactorSubscriber.java:70)
对应的源码应该是这一行
return actual.currentContext()
.put(SentinelReactorConstants.SENTINEL_CONTEXT_KEY, currentEntry.getAsyncContext());
从异常栈信息看,应该是 currentEntry.getAsyncContext()
这句返回了null,但不知为何会出现null
2条答案
按热度按时间z31licg01#
是否有办法稳定复现?
c0vxltue2#
是否有办法稳定复现?
我在本地测试了好几种情况,发现结合r2dbc使用时且并发量高的情况下才偶然复现,详细的异常栈信息如下: