【问题标题】:compojure stack-over-flows when editing code dynamically动态编辑代码时组合堆栈溢出
【发布时间】:2013-09-07 18:49:08
【问题描述】:

我正在使用 compojure 开发一个 webapp,我曾经使用lein ring server 来测试我的应用程序。

由于出现问题(例如,在 http 请求期间出现 500 服务器错误),我总是在环服务器运行时编辑代码,并且当我保存更改时它会保持动态重新编译,因此无需重新启动 @987654322 @

但是今天有些奇怪。有一个文件,其中包含整个应用程序的核心逻辑。我仔细设计了它,所以没有循环依赖。当我开始lein ring server 时,一切都很好。但很快事情就变得奇怪了:对该文件的任何更新(甚至添加一个空格)都会导致服务器在下一个 http 请求时堆栈溢出,如果我重新启动服务器,一切都会再次正常,我的新代码运行良好。所以直到现在,每次我需要更新那个文件时,我都需要关闭服务器,更新文件,然后再次运行lein ring server。那是浪费时间,我想知道可能是什么原因。

错误信息显示:

at clojure.core$reduce.invoke(core.clj:6177)
at ns_tracker.dependency$transitive.invoke(dependency.clj:22)
at ns_tracker.dependency$transitive$fn__924.invoke(dependency.clj:21)
at clojure.core.protocols$fn__6022.invoke(protocols.clj:79)
at clojure.core.protocols$fn__5979$G__5974__5992.invoke(protocols.clj:13)

数百次,但“stackoverflow”除外。

非常感谢大家

【问题讨论】:

  • 不看你的代码sn-p就无法知道。
  • 所有代码运行良好,堆栈跟踪显示我的应用程序内没有代码......
  • Clojure、Ring 和 Compojure 有哪些版本?
  • 我正在使用 clojure 1.5.1 和 compojure 1.1.5、leiningen 1.2.2、lein-ring 0.8.5 和 ring-mock 0.1.5

标签: clojure


【解决方案1】:

虽然没有看到代码和终端确实很难准确,但我建议将您的 lein-ring 依赖项升级到更新版本。众所周知,lein-ring 0.8.5 存在一些问题。

【讨论】:

    猜你喜欢
    • 2010-09-08
    • 1970-01-01
    • 1970-01-01
    • 2012-01-19
    • 1970-01-01
    • 1970-01-01
    • 2019-05-18
    • 2015-01-07
    • 2020-01-06
    相关资源
    最近更新 更多