빠른 번지점프는 간헐성 발톱을 일으킨다.그물ConnectException:Mac에서 연결 거부

7349 단어 leiningen

묘사

설정LEIN_FAST_TRAMPOLINE 이후 lein repl의 후속 호출이 실패하여 "연결이 거부되었습니다"실행 lein clean 은 한 번의 성공적인 lein repl 호출을 허용합니다.주: 사용하지 않음trampoline.
Clojure 1.6.1, Java 1.8.0 05, Leiningen 2.4.0, Mac OS 10.9.3을 사용합니다.
>> lein repl
Exception in thread "main" java.net.ConnectException: Connection refused, compiling:(/foo/target/87dfbe88573d47a5c03ff7fb171fb19207f5bcee-init.clj:1:1)
    at clojure.lang.Compiler.load(Compiler.java:7142)
    at clojure.lang.Compiler.loadFile(Compiler.java:7086)
    at clojure.main$load_script.invoke(main.clj:274)
    at clojure.main$init_opt.invoke(main.clj:279)
    at clojure.main$initialize.invoke(main.clj:307)
    at clojure.main$null_opt.invoke(main.clj:342)
    at clojure.main$main.doInvoke(main.clj:420)
    at clojure.lang.RestFn.invoke(RestFn.java:421)
    at clojure.lang.Var.invoke(Var.java:383)
    at clojure.lang.AFn.applyToHelper(AFn.java:156)
    at clojure.lang.Var.applyTo(Var.java:700)
    at clojure.main.main(main.java:37)
Caused by: java.net.ConnectException: Connection refused
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
    at java.net.Socket.connect(Socket.java:589)
    at java.net.Socket.connect(Socket.java:538)
    at java.net.Socket.<init>(Socket.java:434)
    at java.net.Socket.<init>(Socket.java:211)
    at clojure.tools.nrepl$connect.doInvoke(nrepl.clj:184)
    at clojure.lang.RestFn.invoke(RestFn.java:421)
    at clojure.tools.nrepl.ack$send_ack.invoke(ack.clj:47)
    at clojure.tools.nrepl.server$start_server.doInvoke(server.clj:146)
    at clojure.lang.RestFn.invoke(RestFn.java:619)
    at user$eval7745.invoke(87dfbe88573d47a5c03ff7fb171fb19207f5bcee-init.clj:1)
    at clojure.lang.Compiler.eval(Compiler.java:6703)
    at clojure.lang.Compiler.eval(Compiler.java:6693)
    at clojure.lang.Compiler.load(Compiler.java:7130)
    ... 11 more
REPL server launch timed out.
>> lein clean
>> lein repl
nREPL server started on port 49447 on host 127.0.0.1 - nrepl://127.0.0.1:49447
REPL-y 0.3.1
Clojure 1.6.0
    Docs: (doc function-name-here)
          (find-doc "part-of-name-here")
  Source: (source function-name-here)
 Javadoc: (javadoc java-object-or-class-here)
    Exit: Control+D or (exit) or (quit)
 Results: Stored in vars *1, *2, *3, an exception in *e

user=> Bye for now!
>> lein repl
Exception in thread "main" java.net.ConnectException: Connection refused, compiling:(/foo/target/87dfbe88573d47a5c03ff7fb171fb19207f5bcee-init.clj:1:1)
    at clojure.lang.Compiler.load(Compiler.java:7142)
    at clojure.lang.Compiler.loadFile(Compiler.java:7086)
    at clojure.main$load_script.invoke(main.clj:274)
    at clojure.main$init_opt.invoke(main.clj:279)
    at clojure.main$initialize.invoke(main.clj:307)
    at clojure.main$null_opt.invoke(main.clj:342)
    at clojure.main$main.doInvoke(main.clj:420)
    at clojure.lang.RestFn.invoke(RestFn.java:421)
    at clojure.lang.Var.invoke(Var.java:383)
    at clojure.lang.AFn.applyToHelper(AFn.java:156)
    at clojure.lang.Var.applyTo(Var.java:700)
    at clojure.main.main(main.java:37)
Caused by: java.net.ConnectException: Connection refused
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
    at java.net.Socket.connect(Socket.java:589)
    at java.net.Socket.connect(Socket.java:538)
    at java.net.Socket.<init>(Socket.java:434)
    at java.net.Socket.<init>(Socket.java:211)
    at clojure.tools.nrepl$connect.doInvoke(nrepl.clj:184)
    at clojure.lang.RestFn.invoke(RestFn.java:421)
    at clojure.tools.nrepl.ack$send_ack.invoke(ack.clj:47)
    at clojure.tools.nrepl.server$start_server.doInvoke(server.clj:146)
    at clojure.lang.RestFn.invoke(RestFn.java:619)
    at user$eval7745.invoke(87dfbe88573d47a5c03ff7fb171fb19207f5bcee-init.clj:1)
    at clojure.lang.Compiler.eval(Compiler.java:6703)
    at clojure.lang.Compiler.eval(Compiler.java:6693)
    at clojure.lang.Compiler.load(Compiler.java:7130)
    ... 11 more
>> unset LEIN_FAST_TRAMPOLINE
>> lein clean
>> lein repl
nREPL server started on port 49454 on host 127.0.0.1 - nrepl://127.0.0.1:49454
REPL-y 0.3.1
Clojure 1.6.0
    Docs: (doc function-name-here)
          (find-doc "part-of-name-here")
  Source: (source function-name-here)
 Javadoc: (javadoc java-object-or-class-here)
    Exit: Control+D or (exit) or (quit)
 Results: Stored in vars *1, *2, *3, an exception in *e

user=> Bye for now!
>> lein repl
nREPL server started on port 49458 on host 127.0.0.1 - nrepl://127.0.0.1:49458
REPL-y 0.3.1
Clojure 1.6.0
    Docs: (doc function-name-here)
          (find-doc "part-of-name-here")
  Source: (source function-name-here)
 Javadoc: (javadoc java-object-or-class-here)
    Exit: Control+D or (exit) or (quit)
 Results: Stored in vars *1, *2, *3, an exception in *e

user=> Bye for now!

토론 #1

*Clojure 1.6.0, 아직 1.6.1이 없습니다!

토론 #2

오늘 아침에 있든 없든LEIN_FAST_TRAMPOLINE 나는 이 문제에 부딪힐 것이다.다른 보고서에서 이 구멍을 복구하는 방법 (방화벽 사용 금지 등) 을 시도해 보았지만 효과가 없습니다.
같은 기계에서 2.3.4를 사용할 때 이것은 문제가 아니다.

토론 #셋

당신은 lein repl :headless :port 9999를 운행하고 텔넷에 연결할 수 있습니까?

토론 #4

물론, 새로운 테스트 프로젝트의 테스트 사용자에 대해 나는 이 문제가 2.3.4에 나타나지 않고 설정LEIN_FAST_TRAMPOLINE에 있을 때만 나타나는 것이 믿을 만하다는 것을 확인했다.나는 그것이 조금 전에 다시 실패했을 때 설정되지 않았는지 자세히 검사해야 한다.
나는 lein repl :headless :port 9999로 nREPL을 반복해서 시작할 수도 있고 텔넷으로 연결할 수도 있다.telnet은 IPv6를 통해 호스트에 도착할 수 없습니다. 그리고 IPv4를 통해 성공할 수 있습니다.

토론 #5

3addf526은 2.3.4 이후 docstring과 Reply bump를 제외하고 Repl 작업 중 유일한 변화입니다.어쩌면 @trptcolin은 무엇이 이 모든 것을 초래했는지 알고 있을까요?

토론 #6

네, 아직 안 써봤어요LEIN_FAST_TRAMPOLINE. 그런데 이 데이터가 유용했으면 좋겠어요?2.4.2에서 실행lein replSOME_SHA_LOOKING_THING-init.clj 아래에 파일target/을 남기지만 2.3.4에서는 그렇지 않습니다.https://gist.github.com/trptcolin/64286df9771aba8f8857
궁금한 것은 이 파일 (Stacktrace와 관련된 것 제외) 에 ack 포트가 명확하게 지정되어 있다는 것이다.나는 ack 포트의 모든 세부 사항을 기억하지 못하지만, 그것은 보기에 starting the nrepl server resets the port 같다.
주의해야 할 것은 lein trampoline repl 효과가 있는 것 같다(-ish: 여기서든 과거의lein버전에서든 모두 하나가 필요한 것 같다(shutdown-agents). 아마도 2.3.4부터일 것이다.이 때문에 별도로 한 기를 개설하다.

토론 #7

나는 문제의 소재를 이해한다.프로젝트 파일에 eval을 쓴 코드의 버그입니다.

좋은 웹페이지 즐겨찾기