lein REPL server launch timed out

Jaime Agudo picture Jaime Agudo · Mar 29, 2014 · Viewed 7.3k times · Source

in a liberator based clojure project we are using datomic as DB. After migrating our local dev DB to a S3 hosted one and adding the needed dependencies on our project.clj we cannot launch the REPL but the Liberator stack runs fine through lein run

My guess is that the DB connection is messing things up, so, the question is, how can I somehow "debug" or figure out what's the reason of this lein repl timeout?

My project.clj

(defproject myproject "0.1.0-SNAPSHOT"
  :main myproject.core
  :jvm-opts ["-Xmx1G"]
  :datomic {:schemas ["resources" ["myproject-schema.edn" ]]}
  :plugins [[lein-ring "0.8.10"]]
  ; cp bin/transactor config/samples/free-transactor-template.properties resources/transactor.properties
  :profiles {:dev
             {:datomic {
                        ; :config resources/transactor.properties
                        ; :db-uri "datomic:free://127.0.0.1:4334/myproject"}
                        :db-uri "datomic:ddb://us-east-1/datomica/myproject"}

 :dependencies [[ring-mock "0.1.5"]
                             [midje "1.5.1"]
                             ]
              }
             }
  :dependencies [[org.clojure/clojure "1.5.1"]
                 [com.datomic/datomic-pro "0.9.4556"]
                 ; [com.datomic/datomic-free "0.9.4470"]
                 [com.cemerick/friend "0.2.0"]
                 [liberator "0.10.0"]
                 [compojure "1.1.5"]
                 [http-kit "2.1.13"]
                 [cheshire "5.1.1"]
                 [ring/ring-jetty-adapter "1.1.0"]
                 [ring/ring-devel "1.2.0"]
                 [org.clojure/clojure-contrib "1.2.0"]
                 [url62 "1.0.0-SNAPSHOT"]
                 [clj-http "0.7.8"]
                 [org.clojars.nathell/clojure-contrib "1.2.0"]
                 [com.taoensso/timbre "3.0.0-RC4"]
                 [clj-aws-s3 "0.3.8"]
                 [image-resizer "0.1.5"]
                 [pandect "0.3.1"]
                 [base64-clj "0.1.1"]
                 ]
    :ring {
           :handler myproject.core
           }
)

My profiles.clj

cat ~/.lein/profiles.clj                                                           
{:user {:dependencies [[slamhound "1.5.0"]]
        :aliases {"slamhound"["run" "-m" "slam.hound"]}
        :plugins [[lein-datomic "0.2.0"]
                  [lein-midje "3.0.0"]
                                  [lein-html5-docs "2.0.0"]
                                  [lein-pprint "1.1.2-SNAPSHOT"]]
                ; :datomic {:install-location "/opt/datomic-free"}
                :datomic {:install-location "/opt/datomic-pro/"}
                }
}%      

My .zshrc

export CLASSPATH=$CLASSPATH:/home/user:/opt/datomic-pro:.

My env

Leiningen 2.3.3 on Java 1.7.0_25 OpenJDK 64-Bit Server VM
Linux 3.8.0-35-generic #50-Ubuntu SMP Tue Dec 3 01:24:59 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

Answer

adamneilson picture adamneilson · Mar 30, 2014

It can sometimes take a while for all the ducks to be in order. Specify :repl-options in your project.clj file with a longer time-out like this:

:repl-options {
             ;; If nREPL takes too long to load it may timeout,
             ;; increase this to wait longer before timing out.
             ;; Defaults to 30000 (30 seconds)
             :timeout 120000
             }

Hopefully that should do the trick.