-
Notifications
You must be signed in to change notification settings - Fork 12.8k
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
Found one Java-level deadlock #12576
Comments
这个pr解决的是:避免ProtocolManager对象在初始化和使用时产生竞争。 |
@HMYDK |
是的,没有从根本解决问题。只是减少了可能性。 |
@KomachiSion 看了 #12573 的代码,在ServerStatusManager中 加上了如下代码: private boolean isReady() {
if (!globalConfig.isDataWarmup()) {
return true;
}
if (!protocolManager.isCpInit() || protocolManager.getCpProtocol() == null) {
return false;
}
return protocolManager.getCpProtocol().isReady() && distroProtocol.isInitialized();
} 从代码上看,是可以避免了deadlock了。 |
@KomachiSion |
预计这周就会发布, 启动死锁的问题会尽快解决发版的。 |
欢迎使用develop分支多测试一下, 我自己测试了10次,已经不会造成启动死锁了, 不过2.4.1版本我自己环境运行也概率很低,可能需要别人的环境里多测试下。 |
测试了10次,没有发现启动死锁情况 |
Fixed in 2.4.2 |
Describe the bug
启动后,访问页面不出来,通过jstack发现了 deadlock
Expected behavior
正常启动
Actually behavior
出现死锁
How to Reproduce
不是稳定复现,使用的是mysql。
2.4.1 版本
死锁线程栈
The text was updated successfully, but these errors were encountered: