2013-09-07 2 views
0

저는 compojure를 사용하는 webapp에서 작업 중이며, lein ring server을 사용하여 응용 프로그램을 테스트했습니다.코드를 동적으로 편집 할 때 스택 오버 플로우가 발생합니다.

http 요청 중에 500 Server Error와 같은 문제가 발생했기 때문에 링 서버가 실행되는 동안 코드를 편집하고 변경 사항을 저장할 때 동적으로 다시 컴파일하여 다시 시작할 필요가 없습니다. lein ring server

하지만 오늘은 이상하게되었습니다. 전체 애플리케이션의 핵심 로직을 담고있는 파일이있었습니다. 순환 종속성이 없도록 신중하게 설계했습니다. 내가 시작했을 때 모든 것이 괜찮 았는데 lein ring server. 하지만 곧 이상한 일이 일어납니다. 그 파일에서 어떤 업데이트 (심지어 단일 공간 추가)가 발생하면 다음 http-request에서 서버 스택 오버 플로우가 발생하고 서버를 다시 시작하면 모든 일이 다시 정상적으로 처리되고 새로운 코드가 잘 실행됩니다. 따라서 지금까지 파일을 업데이트해야 할 때마다 서버를 종료하고 파일을 업데이트 한 다음 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) 

.

+0

코드 스 니펫을 보지 않고서도 알 수 없습니다. – Chiron

+0

모든 코드가 잘 작동하고 스택 추적에 내 응용 프로그램 내부에 코드가 표시되지 않습니다 .... –

+0

Clojure, Ring 및 Compojure의 버전은 무엇입니까? – Chiron

답변

0

대단히의 모든

덕분에이 코드와 터미널을 보지 않고 정확 정말 어렵 동안, 나는 최신 버전으로 lein 링 종속성을 업그레이드하는 것이 좋습니다 것입니다. lein-ring 0.8.5에는 몇 가지 문제가있는 것으로 알려졌습니다.

+0

으로 clojure 1.5.1을 사용하고 있습니다 ... THX ... 시도해 보겠습니다 ... –

관련 문제