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

线上环境升级到6.1.0,服务器CPU直接99%以上,下不来,接口全部无响应 #789

Open
Q3061932198 opened this issue Dec 23, 2023 · 4 comments

Comments

@Q3061932198
Copy link

Q3061932198 commented Dec 23, 2023

是因为SQL解析超时的问题吗?框架还使用了mybatis-plus最新版3.5.4.1

降到6.0.0,恢复正常,如果是解析超时,我看错误日志也看不出来有任何问题,怎么看解析超时啊

@Q3061932198 Q3061932198 changed the title 真实环境升级到6.1.0,服务器CPU直接99%以上,下不来,接口全部无响应 线上环境升级到6.1.0,服务器CPU直接99%以上,下不来,接口全部无响应 Dec 23, 2023
@abel533
Copy link
Collaborator

abel533 commented Dec 25, 2023

使用6.1.0的同时,使用加下面依赖试试(超时10秒):

<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>sqlparser-timeout</artifactId>
    <version>6.1.0</version>
</dependency>

可以jstack看看线程在做什么,如果很多线程都停留在jsqlparser,就有可能是解析超时。

@abel533
Copy link
Collaborator

abel533 commented Dec 25, 2023

如果超时的概率很高,就发个小版本默认加上超时。

@abel533 abel533 pinned this issue Dec 25, 2023
@Q3061932198
Copy link
Author

使用6.1.0的同时,使用加下面依赖试试(超时10秒):

<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>sqlparser-timeout</artifactId>
    <version>6.1.0</version>
</dependency>

可以jstack看看线程在做什么,如果很多线程都停留在jsqlparser,就有可能是解析超时。

这个sqlparser-timeout确定是默认10秒?我看代码怎么感觉是100秒啊?
image
毫秒转换成秒,去掉末尾的三个0就是秒的吧?去掉三个0剩下的是100秒

@mfkvfhpdx
Copy link

我这也有这个问题 ,用地sqlparse 4.9,pagehlper6.10 某些sql会导致线程飙升,cpu到100% java.lang.Thread.State: RUNNABLE
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_RelObjectNameWithoutValue_1844_5_120(CCJSqlParser.java:33149)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_RelObjectName_1856_6_400(CCJSqlParser.java:32743)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_RelObjectName_1856_5_165(CCJSqlParser.java:32751)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_RelObjectNameExt_1886_7_600(CCJSqlParser.java:32575)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_RelObjectNameExt_1886_5_346(CCJSqlParser.java:32589)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_RelObjectNameList_1801_5_402(CCJSqlParser.java:33698)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_InternalFunction_5221_5_635(CCJSqlParser.java:31662)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_Function_5123_11_474(CCJSqlParser.java:32004)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_Function_5119_5_234(CCJSqlParser.java:32073)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_PrimaryExpression_4250_11_483(CCJSqlParser.java:35634)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_PrimaryExpression_4223_5_242(CCJSqlParser.java:35865)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_BitwiseXor_4162_5_257(CCJSqlParser.java:36183)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_MultiplicativeExpression_4132_5_252(CCJSqlParser.java:36248)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_AdditiveExpression_4108_5_249(CCJSqlParser.java:36283)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_BitwiseAndOr_4076_5_244(CCJSqlParser.java:36342)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_ConcatExpression_4053_5_185(CCJSqlParser.java:36398)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_SimpleExpression_4024_5_202(CCJSqlParser.java:36482)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3_198(CCJSqlParser.java:37723)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_SQLCondition_3597_5_220(CCJSqlParser.java:37764)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3_184(CCJSqlParser.java:38220)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_Condition_3497_5_184(CCJSqlParser.java:38278)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_AndExpression_3472_9_215(CCJSqlParser.java:38350)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3_180(CCJSqlParser.java:38379)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_AndExpression_3459_5_213(CCJSqlParser.java:38447)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_OrExpression_3437_5_212(CCJSqlParser.java:38461)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_XorExpression_3418_5_348(CCJSqlParser.java:38485)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_Expression_3408_5_112(CCJSqlParser.java:38502)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3_223(CCJSqlParser.java:36721)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_ComplexExpressionList_3912_5_235(CCJSqlParser.java:36737)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_ParenthesedExpressionList_3858_9_237(CCJSqlParser.java:36842)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3_219(CCJSqlParser.java:36853)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_ParenthesedExpressionList_3856_5_201(CCJSqlParser.java:36865)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3_229(CCJSqlParser.java:36570)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_ComparisonItem_3986_3_221(CCJSqlParser.java:36608)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_RegularCondition_3531_5_219(CCJSqlParser.java:38064)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_Condition_3499_9_408(CCJSqlParser.java:38226)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_Condition_3497_5_184(CCJSqlParser.java:38276)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_AndExpression_3460_9_423(CCJSqlParser.java:38430)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_AndExpression_3459_5_213(CCJSqlParser.java:38441)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3_178(CCJSqlParser.java:38455)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_OrExpression_3437_5_212(CCJSqlParser.java:38465)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_XorExpression_3418_5_348(CCJSqlParser.java:38485)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_Expression_3408_5_112(CCJSqlParser.java:38502)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3_223(CCJSqlParser.java:36721)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_ComplexExpressionList_3912_5_235(CCJSqlParser.java:36737)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_ParenthesedExpressionList_3858_9_237(CCJSqlParser.java:36842)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3_219(CCJSqlParser.java:36853)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_ParenthesedExpressionList_3856_5_201(CCJSqlParser.java:36865)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_PrimaryExpression_4290_9_493(CCJSqlParser.java:35398)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_PrimaryExpression_4223_5_242(CCJSqlParser.java:35933)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_BitwiseXor_4162_5_257(CCJSqlParser.java:36183)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_MultiplicativeExpression_4132_5_252(CCJSqlParser.java:36248)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_AdditiveExpression_4108_5_249(CCJSqlParser.java:36283)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_BitwiseAndOr_4076_5_244(CCJSqlParser.java:36342)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_ConcatExpression_4053_5_185(CCJSqlParser.java:36398)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_SimpleExpression_4024_5_202(CCJSqlParser.java:36482)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3_198(CCJSqlParser.java:37723)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_SQLCondition_3597_5_220(CCJSqlParser.java:37764)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3_184(CCJSqlParser.java:38220)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_Condition_3497_5_184(CCJSqlParser.java:38278)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_AndExpression_3460_9_423(CCJSqlParser.java:38430)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_AndExpression_3459_5_213(CCJSqlParser.java:38441)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3_178(CCJSqlParser.java:38455)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_OrExpression_3437_5_212(CCJSqlParser.java:38465)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_XorExpression_3418_5_348(CCJSqlParser.java:38485)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_Expression_3408_5_112(CCJSqlParser.java:38502)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3_223(CCJSqlParser.java:36721)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_ComplexExpressionList_3912_5_235(CCJSqlParser.java:36737)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_ParenthesedExpressionList_3858_9_237(CCJSqlParser.java:36842)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3_219(CCJSqlParser.java:36853)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_ParenthesedExpressionList_3856_5_201(CCJSqlParser.java:36865)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_PrimaryExpression_4290_9_493(CCJSqlParser.java:35398)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_PrimaryExpression_4223_5_242(CCJSqlParser.java:35933)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_BitwiseXor_4162_5_257(CCJSqlParser.java:36183)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_MultiplicativeExpression_4132_5_252(CCJSqlParser.java:36248)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_AdditiveExpression_4108_5_249(CCJSqlParser.java:36283)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_BitwiseAndOr_4076_5_244(CCJSqlParser.java:36342)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_ConcatExpression_4053_5_185(CCJSqlParser.java:36398)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_SimpleExpression_4024_5_202(CCJSqlParser.java:36482)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3_228(CCJSqlParser.java:36576)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_ComparisonItem_3986_3_221(CCJSqlParser.java:36606)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_RegularCondition_3531_5_219(CCJSqlParser.java:38064)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_Condition_3499_9_408(CCJSqlParser.java:38226)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_Condition_3497_5_184(CCJSqlParser.java:38276)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3_181(CCJSqlParser.java:38304)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_rescan_token(CCJSqlParser.java:39811)
at net.sf.jsqlparser.parser.CCJSqlParser.generateParseException(CCJSqlParser.java:39597)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_consume_token(CCJSqlParser.java:39427)
at net.sf.jsqlparser.parser.CCJSqlParser.AndExpression(CCJSqlParser.java:12475)
at net.sf.jsqlparser.parser.CCJSqlParser.OrExpression(CCJSqlParser.java:12431)
at net.sf.jsqlparser.parser.CCJSqlParser.XorExpression(CCJSqlParser.java:12403)
at net.sf.jsqlparser.parser.CCJSqlParser.AndExpression(CCJSqlParser.java:12474)
at net.sf.jsqlparser.parser.CCJSqlParser.OrExpression(CCJSqlParser.java:12431)
at net.sf.jsqlparser.parser.CCJSqlParser.XorExpression(CCJSqlParser.java:12403)
at net.sf.jsqlparser.parser.CCJSqlParser.AndExpression(CCJSqlParser.java:12542)
at net.sf.jsqlparser.parser.CCJSqlParser.OrExpression(CCJSqlParser.java:12421)
at net.sf.jsqlparser.parser.CCJSqlParser.XorExpression(CCJSqlParser.java:12403)
at net.sf.jsqlparser.parser.CCJSqlParser.Expression(CCJSqlParser.java:12374)
at net.sf.jsqlparser.parser.CCJSqlParser.WhereClause(CCJSqlParser.java:11669)
at net.sf.jsqlparser.parser.CCJSqlParser.PlainSelect(CCJSqlParser.java:8949)
at net.sf.jsqlparser.parser.CCJSqlParser.Select(CCJSqlParser.java:8205)
at net.sf.jsqlparser.parser.CCJSqlParser.SelectWithWithItems(CCJSqlParser.java:8178)
at net.sf.jsqlparser.parser.CCJSqlParser.SingleStatement(CCJSqlParser.java:379)
at net.sf.jsqlparser.parser.CCJSqlParser.Statement(CCJSqlParser.java:296)
at com.github.pagehelper.parser.SqlParser.lambda$static$0(SqlParser.java:45)
at com.github.pagehelper.parser.SqlParser$$Lambda$554/452704300.parse(Unknown Source)
at com.github.pagehelper.parser.SqlParserUtil.parse(SqlParserUtil.java:28)
at com.github.pagehelper.parser.defaults.DefaultCountSqlParser.getSmartCountSql(DefaultCountSqlParser.java:74)
at com.github.pagehelper.dialect.AbstractHelperDialect.getCountSql(AbstractHelperDialect.java:79)
at com.github.pagehelper.PageHelper.getCountSql(PageHelper.java:111)
at com.github.pagehelper.util.ExecutorUtil.executeAutoCount(ExecutorUtil.java:157)
at com.github.pagehelper.PageInterceptor.count(PageInterceptor.java:244)
at com.github.pagehelper.PageInterceptor.intercept(PageInterceptor.java:153)

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

No branches or pull requests

3 participants