首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sonar V.4.3.1不能从postgresql开始

sonar V.4.3.1不能从postgresql开始
EN

Stack Overflow用户
提问于 2014-06-21 05:00:16
回答 1查看 292关注 0票数 3

步骤-安装服务器-更改JDBC URL以指向新创建的poststreSQL数据库(默认模式/使用声纳用户)。在这里,默认的H2 JDBC URL被禁用,只有激活的postgreSQL JDBC URL - DB用户名和密码仍然是默认的(声纳/声纳)-在启动服务器时,我看到表创建成功,但是服务器没有成功启动。日志中显示了以下内容。

-日志开始的一部分

代码语言:javascript
复制
2014.06.19 16:18:00 ERROR [jruby.rack]  initialization failed
org.jruby.rack.RackInitializationException: org.apache.ibatis.exceptions.PersistenceException: 
### Error querying database.  Cause: org.postgresql.util.PSQLException: ERROR: stack depth limit exceeded
  Hint: Increase the configuration parameter "max_stack_depth" (currently 2048kB), after ensuring the platform's stack depth limit is adequate.
### The error may exist in org.sonar.core.rule.RuleMapper
### The error may involve defaultParameterMap
### The error occurred while setting parameters
### SQL: SELECT       rrt.id, rrt.rule_id as "ruleId", rrt.rule_tag_id as "tagId", rrt.tag_type as "type", rt.tag         FROM rules_rule_tags rrt     JOIN rule_tags rt ON rrt.rule_tag_id = rt.id      WHERE  ((rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=? or rrt.rule_id=?

sql select语句继续执行,直到显示以下内容:

-启动

代码语言:javascript
复制
### Cause: org.postgresql.util.PSQLException: ERROR: stack depth limit exceeded
  Hint: Increase the configuration parameter "max_stack_depth" (currently 2048kB), after ensuring the platform's stack depth limit is adequate.
    at org.jruby.rack.RackInitializationException.wrap(RackInitializationException.java:31) ~[jruby-rack-1.1.13.2.jar:na]
    at org.jruby.rack.RackApplicationFactoryDecorator.init(RackApplicationFactoryDecorator.java:98) ~[jruby-rack-1.1.13.2.jar:na]
    at org.jruby.rack.RackServletContextListener.contextInitialized(RackServletContextListener.java:50) ~[jruby-rack-1.1.13.2.jar:na]
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4939) [tomcat-embed-core-7.0.42.jar:7.0.42]
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5434) [tomcat-embed-core-7.0.42.jar:7.0.42]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) [tomcat-embed-core-7.0.42.jar:7.0.42]
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559) [tomcat-embed-core-7.0.42.jar:7.0.42]
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549) [tomcat-embed-core-7.0.42.jar:7.0.42]
    at java.util.concurrent.FutureTask.run(FutureTask.java:262) [na:1.7.0_51]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_51]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_51]
    at java.lang.Thread.run(Thread.java:744) [na:1.7.0_51]
EN

回答 1

Stack Overflow用户

发布于 2015-02-07 00:29:08

我猜这是PostgreSQL中的解析错误,而不是执行错误。因为这是SQL,所以使用基于堆栈的解析器是很正常的。这自然会使用解析器产品,比如

代码语言:javascript
复制
conditions ::== boolean_term
conditions ::== boolean_term boolean_op conditions 

其中每个额外的boolean_term可能导致堆栈推送/递归。有超过一百个'a = ?‘术语,甚至更多,解析堆栈可能会变得非常大。

@Haytham穆罕默德,任何可能有2000或更多重复的

或者rrt.rule_id =?

在这个查询中?

如果是这样,您需要更改Sonar、JRuby.rack或apache abatis使用的SQL生成。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24335563

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档