Ruby on rails SystemStackError:堆栈级别太深-sql.active\u记录?

Ruby on rails SystemStackError:堆栈级别太深-sql.active\u记录?,ruby-on-rails,ruby,activerecord,Ruby On Rails,Ruby,Activerecord,我遇到了一个大问题。我的应用程序正在执行数千个SQL查询,然后突然出现了这个错误。如果我直接通过rake任务或rails控制台执行代码,这没有什么区别 有人知道这是什么意思吗?从未见过与rails记录器相关的此错误 环境: ruby-2.1.2 博士后9.3 轨道4.1.5 Could not log "sql.active_record" event. SystemStackError: stack level too deep ["/Users /ghostrifle/.rvm/gems/

我遇到了一个大问题。我的应用程序正在执行数千个SQL查询,然后突然出现了这个错误。如果我直接通过rake任务或rails控制台执行代码,这没有什么区别

有人知道这是什么意思吗?从未见过与rails记录器相关的此错误

环境:
ruby-2.1.2
博士后9.3
轨道4.1.5

Could not log "sql.active_record" event. SystemStackError: stack level too deep ["/Users  /ghostrifle/.rvm/gems/ruby-2.1.2/gems/activesupport-4.1.5/lib/active_support/tagged_logging.rb:46"]
SystemStackError: stack level too deep
from /Users/ghostrifle/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/irb/workspace.rb:86
Maybe IRB bug!
在23个调用方之后引发异常

下面是SystemStackError异常的检查

[
  "/Users/ghostrifle/Entwicklung/xxx_main/lib/tasks/tree_spot.rake:42:in `block (2 levels) in <top (required)>'",
  "/Users/ghostrifle/.rvm/gems/ruby-2.1.2/gems/rake-10.3.2/lib/rake/task.rb:240:in `call'",
  "/Users/ghostrifle/.rvm/gems/ruby-2.1.2/gems/rake-10.3.2/lib/rake/task.rb:240:in `block in execute'",
  "/Users/ghostrifle/.rvm/gems/ruby-2.1.2/gems/rake-10.3.2/lib/rake/task.rb:235:in `each'",
  "/Users/ghostrifle/.rvm/gems/ruby-2.1.2/gems/rake-10.3.2/lib/rake/task.rb:235:in `execute'",
  "/Users/ghostrifle/.rvm/gems/ruby-2.1.2/gems/rake-10.3.2/lib/rake/task.rb:179:in `block in invoke_with_call_chain'",
  "/Users/ghostrifle/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/monitor.rb:211:in `mon_synchronize'",
  "/Users/ghostrifle/.rvm/gems/ruby-2.1.2/gems/rake-10.3.2/lib/rake/task.rb:172:in `invoke_with_call_chain'",
  "/Users/ghostrifle/.rvm/gems/ruby-2.1.2/gems/rake-10.3.2/lib/rake/task.rb:165:in `invoke'",
  "/Users/ghostrifle/.rvm/gems/ruby-2.1.2/gems/rake-10.3.2/lib/rake/application.rb:150:in `invoke_task'",
  "/Users/ghostrifle/.rvm/gems/ruby-2.1.2/gems/rake-10.3.2/lib/rake/application.rb:106:in `block (2 levels) in top_level'",
  "/Users/ghostrifle/.rvm/gems/ruby-2.1.2/gems/rake-10.3.2/lib/rake/application.rb:106:in `each'",
  "/Users/ghostrifle/.rvm/gems/ruby-2.1.2/gems/rake-10.3.2/lib/rake/application.rb:106:in `block in top_level'",
  "/Users/ghostrifle/.rvm/gems/ruby-2.1.2/gems/rake-10.3.2/lib/rake/application.rb:115:in `run_with_threads'",
  "/Users/ghostrifle/.rvm/gems/ruby-2.1.2/gems/rake-10.3.2/lib/rake/application.rb:100:in `top_level'",
  "/Users/ghostrifle/.rvm/gems/ruby-2.1.2/gems/rake-10.3.2/lib/rake/application.rb:78:in `block in run'",
  "/Users/ghostrifle/.rvm/gems/ruby-2.1.2/gems/rake-10.3.2/lib/rake/application.rb:176:in `standard_exception_handling'",
  "/Users/ghostrifle/.rvm/gems/ruby-2.1.2/gems/rake-10.3.2/lib/rake/application.rb:75:in `run'",
  "/Users/ghostrifle/.rvm/gems/ruby-2.1.2/gems/rake-10.3.2/bin/rake:33:in `<top (required)>'",
  "/Users/ghostrifle/.rvm/gems/ruby-2.1.2/bin/rake:23:in `load'",
  "/Users/ghostrifle/.rvm/gems/ruby-2.1.2/bin/rake:23:in `<main>'",
  "/Users/ghostrifle/.rvm/gems/ruby-2.1.2/bin/ruby_executable_hooks:15:in `eval'",
  "/Users/ghostrifle/.rvm/gems/ruby-2.1.2/bin/ruby_executable_hooks:15:in `<main>'"
]
[
“/Users/ghostrifle/Entwicklung/xxx_main/lib/tasks/tree_spot.rake:42:in`block(2层)in'”,
“/Users/ghostrifle/.rvm/gems/ruby-2.1.2/gems/rake-10.3.2/lib/rake/task.rb:240:in`call'”,
“/Users/ghostrifle/.rvm/gems/ruby-2.1.2/gems/rake-10.3.2/lib/rake/task.rb:240:在`执行中的块'中,
“/Users/ghostrifle/.rvm/gems/ruby-2.1.2/gems/rake-10.3.2/lib/rake/task.rb:235:在`每个'”中,
“/Users/ghostrifle/.rvm/gems/ruby-2.1.2/gems/rake-10.3.2/lib/rake/task.rb:235:在`执行'中,
“/Users/ghostrifle/.rvm/gems/ruby-2.1.2/gems/rake-10.3.2/lib/rake/task.rb:179:in`block in invoke_with_call_chain'”,
“/Users/ghostrifle/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/monitor.rb:211:in`mon_synchronize'”,
“/Users/ghostrifle/.rvm/gems/ruby-2.1.2/gems/rake-10.3.2/lib/rake/task.rb:172:在'invoke_with_call_chain'中,
“/Users/ghostrifle/.rvm/gems/ruby-2.1.2/gems/rake-10.3.2/lib/rake/task.rb:165:在`调用'中,
“/Users/ghostrifle/.rvm/gems/ruby-2.1.2/gems/rake-10.3.2/lib/rake/application.rb:150:在'invoke_task'中,
“/Users/ghostrifle/.rvm/gems/ruby-2.1.2/gems/rake-10.3.2/lib/rake/application.rb:106:在`顶层中的块(2层)'”,
“/Users/ghostrifle/.rvm/gems/ruby-2.1.2/gems/rake-10.3.2/lib/rake/application.rb:106:in`each'”,
“/Users/ghostrifle/.rvm/gems/ruby-2.1.2/gems/rake-10.3.2/lib/rake/application.rb:106:在`顶层块'中,
“/Users/ghostrifle/.rvm/gems/ruby-2.1.2/gems/rake-10.3.2/lib/rake/application.rb:115:在“使用线程运行”中,
“/Users/ghostrifle/.rvm/gems/ruby-2.1.2/gems/rake-10.3.2/lib/rake/application.rb:100:在“顶级”中,
“/Users/ghostrifle/.rvm/gems/ruby-2.1.2/gems/rake-10.3.2/lib/rake/application.rb:78:在`运行中的块'中,
“/Users/ghostrifle/.rvm/gems/ruby-2.1.2/gems/rake-10.3.2/lib/rake/application.rb:176:在`标准异常处理'中,
“/Users/ghostrifle/.rvm/gems/ruby-2.1.2/gems/rake-10.3.2/lib/rake/application.rb:75:在`运行'中”,
“/Users/ghostrifle/.rvm/gems/ruby-2.1.2/gems/rake-10.3.2/bin/rake:33:in`.”,
“/Users/ghostrifle/.rvm/gems/ruby-2.1.2/bin/rake:23:in'load'”,
“/Users/ghostrifle/.rvm/gems/ruby-2.1.2/bin/rake:23:in`.”,
“/Users/ghostrifle/.rvm/gems/ruby-2.1.2/bin/ruby\u executable\u hooks:15:in`eval'”,
“/Users/ghostrifle/.rvm/gems/ruby-2.1.2/bin/ruby\u executable\u hooks:15:in`”
]

您能否显示导致此问题的代码。据我所知,您正在保留一个堆栈,向其中添加从数据库获取的数据,但可能您没有将其初始化为
[]
。因此,每次运行代码时,数据都会堆积起来,并最终导致此问题。

发生这种情况时有什么特别的情况吗?你有没有检查过你的代码中没有无休止的递归?看看这个链接的thnx,我现在正在尝试ulimit命令。。我的堆栈大小是8192个大。。但是,即使通过“ulimit-s16384”增加它也没有帮助。同样的错误,仍然有23个调用者我想不出其他的解决方案,除了检查代码和寻找可能的无休止的递归循环。你什么时候会得到这个错误?可能是你在做一些无限循环,比如在更新之前调用内部的更新属性,它会创建一个无限循环,同样的错误会被抛出“堆栈级别太深”。你可以找到答案。检查您的代码。