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

com.dangdang.ddframe.rdb.sharding.parsing.lexer.token.Token 在虚拟机内存中有很多的实例 #464

Closed
yuexianbing opened this issue Nov 23, 2017 · 6 comments

Comments

@yuexianbing
Copy link

请看下,还是cpu使用过高的问题,这两天发现com.dangdang.ddframe.rdb.sharding.parsing.lexer.token.Token虚拟机不停的再处理这个类的实例,这个是sql解析用到的,这个实例的创建销毁貌似很频繁啊!
token

@terrymanu
Copy link
Member

实例创建销毁很频繁,一个YGC也能解决。请问是否真的产生FGC,影响业务了?脱离上下文的数据并没有意义。请提供运行了多久,进行了几次FGC,几次YGC,每次间隔多少,内存的使用情况等综合指标。

@yuexianbing
Copy link
Author

skipuntil
token
gc
@terrymanu 您好,不好意思,前几天不在公司。这个是我今天截的部分数据,这些数据是在我禁掉生产的这个节点的前提下看到的。 禁掉节点后 3个小时了,Token还是在不停的创建销毁,线程堆栈runnable也显示在com.dangdang.ddframe.rdb.sharding.parsing.lexer.LexerEngine#skipUntil 这个方法的162行。我测试了下单线程的情况下我的这句sql是进不到 162行的。您看下呢。

@yuexianbing
Copy link
Author

禁掉了dubbo,没有放生任何方法调用。 @terrymanu

@yuexianbing
Copy link
Author

到目前为止,服务器还是这几个线程在狂飙cpu,是不是在com.dangdang.ddframe.rdb.sharding.parsing.lexer.LexerEngine#skipUntil出现了死循环呢
default

@terrymanu
Copy link
Member

sql的char由于没有匹配单引号,并未关闭。恰好sql中的下一个char又是汉字,会导致这个问题出现。
sql示例:

UPDATE product p SET p.title='Title's',s.description='中文' WHERE p.product_id=?

@terrymanu
Copy link
Member

fix at 2.0.0.M4

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants