You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The 2.x and 3.x elasticjob-lite versions of the primary selector logic starts with the ip address of the live instances to match the ip address of the servers. The primary selector logic starts with an exception that causes the primary to enter an infinite loop
2.X和3.X elasticjob-lite版本选主逻辑在遍历存活实例instances下的ip去匹配servers下的ip时使用startsWith,在某种异常情况下会导致选主进入死循环,进而使zk cpu load异常
Bug Report
The 2.x and 3.x elasticjob-lite versions of the primary selector logic starts with the ip address of the live instances to match the ip address of the servers. The primary selector logic starts with an exception that causes the primary to enter an infinite loop
2.X和3.X elasticjob-lite版本选主逻辑在遍历存活实例instances下的ip去匹配servers下的ip时使用startsWith,在某种异常情况下会导致选主进入死循环,进而使zk cpu load异常
使用版本elasticjob-lite 2.1.5,elasticjob-lite 3.0.3版本源码也有此问题
ElasticJob-Lite
生产bug产生的场景的最终结论:
com.dangdang.ddframe.job.lite.internal.election.LeaderService#isLeaderUntilBlock
com.dangdang.ddframe.job.lite.internal.server.ServerService#hasAvailableServers
ServerService#hasAvailableServers调用的hasOnlineInstances 方法会拿当前存活实例instances下的node通过startsWith方法匹配server下没有打上DISABLED标志的node name:("172.28.3.87@-@1".startsWith("172.28.3.8"))
请帮忙修复 ServerService#hasOnlineInstances方法:通过截取@-@ 字符前的ip进行全字符匹配
The text was updated successfully, but these errors were encountered: