Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TTL 在ThreadPoolExecutor传递错误(openJ9 agent使用方式) #647

Open
orangewest opened this issue May 17, 2024 · 5 comments
Open
Labels
😖 no runnable reproducible demo 😵 please provide a simple runnable demo that reproduce the problem

Comments

@orangewest
Copy link

orangewest commented May 17, 2024

日志框架logback,修改了底层MDC的实现,改用TTL
image
启动参数增加agent,调用请求发现ThreadPoolExecutor传递重复
代码如下:
image
image
日志如下:
image
下面的没有从主线程复制
TTL版本:2.14.5 jdk8

@orangewest orangewest changed the title Ttl 在ThreadPoolExecutor传递错误 TTL 在ThreadPoolExecutor传递错误 May 17, 2024
@oldratlee oldratlee added the 😖 no runnable reproducible demo 😵 please provide a simple runnable demo that reproduce the problem label May 17, 2024
@oldratlee
Copy link
Member

oldratlee commented May 18, 2024

@orangewest

上面说明的是 日志/MDC的问题(原因可能是 日志/MDC的使用或实现):

  • 请分离出TTL的问题/Bug的说明
  • TTL的内容(如日志/MDC的问题或使用方式),请尽量不在本库讨论

另外,请提供一个 极简、可运行、复现问题的 代码Demo工程。

推荐提供成一个单独的工程(GitHub repo)。这样可以:

  • 方便大家能排查分析;只提供片段代码、运行问题概述,排查信息不足
  • 方便分离不相关的业务实现内容,以及排除可能的业务使用问题
    如使用配置问题、其它业务代码的意外影响

@orangewest
Copy link
Author

orangewest commented May 19, 2024

@oldratlee
demo地址 https://github.com/orangewest/ttl-demo
启动参数
image
代码
image
image
运行结果
image
image

@jakejakeho
Copy link

orangewest/ttl-demo#1
image
應該是因為沒有用TtlRunnable.get()
image

@orangewest
Copy link
Author

@jakejakeho 使用是agent的方式,是不需要使用TtlRunnable包装的,Completablefuture里面的ForkJoinPool就没有问题。不使用agent直接用ttl包装Executor也没有问题。

@orangewest
Copy link
Author

@oldratlee 大概知道是什么问题了,我用的jdk是openj9,换成openjdk就没问题了,不知道什么原因,ThreadPoolExecutor这个类没有加载,所以没有被增强。
image
但是里面的内部类加载了。
使用arthars jad命令后,才会重新触发增强。

@orangewest orangewest changed the title TTL 在ThreadPoolExecutor传递错误 TTL 在ThreadPoolExecutor传递错误(openJ9 agent使用方式) May 31, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
😖 no runnable reproducible demo 😵 please provide a simple runnable demo that reproduce the problem
Projects
None yet
Development

No branches or pull requests

3 participants