apache / apache/dubbo

升级到3.0.5版本后Filter中使用InheritableThreadLocal会有问题

Open
#9,534 4 comments 0 reactions 0 assignees View on GitHub
type/discussion
Dominant language
Java
Stars
41.6k
Forks
26.4k
Avg merge
15h 13m
Merged PRs (30d)
4

Description

使用org.apache.dubbo.rpc.Filter传递上下文信息,使用InheritableThreadLocal存储上下文参数,之前2.7.3版本的时候是没有问题的,最近升级到3.0.5版本之后,发现这个ThreadLocal是由main线程创建的,因为这个ThreadLocal是子线程共享的,导致所有线程都获取到同一参数。

经过定位发现3.0.5版本在启动的时候会调用MetadataService服务,是通过main线程直接调用的,调用过程中会经过Filter,导致直接在主线程创建了ThreadLocal,后面所有的Tomcat线程都共享了主线程创建的这个ThreadLocal了

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.