This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2018-01-26
Channels
- # arachne (80)
- # beginners (76)
- # boot (16)
- # cider (66)
- # cljs-dev (62)
- # cljsjs (1)
- # clojure (106)
- # clojure-dev (5)
- # clojure-greece (2)
- # clojure-italy (9)
- # clojure-russia (1)
- # clojure-spec (61)
- # clojure-uk (130)
- # clojurescript (21)
- # core-async (9)
- # cursive (3)
- # datomic (37)
- # events (41)
- # figwheel (31)
- # fulcro (27)
- # hoplon (1)
- # jobs (2)
- # lumo (11)
- # off-topic (155)
- # re-frame (71)
- # reagent (27)
- # ring-swagger (3)
- # shadow-cljs (132)
- # spacemacs (5)
- # specter (1)
- # sql (37)
- # test-check (10)
- # uncomplicate (5)
- # unrepl (2)
- # yada (3)
can you test running the npx shadow-cljs server
standalone and if killing it with CTRL+C leaves the orphan java process?
right now in one project, i can start a server with just a warning (“TCP Port 9630 in use” - despite no java process still running), while in another project (maria) when I try to start a server, I get this:
mattpro:editor MattPro$ npx shadow-cljs server
shadow-cljs - config: /Users/MattPro/Documents/sites2017/maria/editor/shadow-cljs.edn version: 2.0.144
shadow-cljs - starting ...
WARNING: boolean? already refers to: #'clojure.core/boolean? in namespace: clojure.tools.analyzer.utils, being replaced by: #'clojure.tools.analyzer.utils/boolean?
WARNING: boolean? already refers to: #'clojure.core/boolean? in namespace: clojure.tools.analyzer, being replaced by: #'clojure.tools.analyzer.utils/boolean?
[2018-01-28 11:32:41 - WARNING] TCP Port 9630 in use.
BindException: Address already in use
java.net.PlainSocketImpl.socketBind (PlainSocketImpl.java:-2)
java.net.AbstractPlainSocketImpl.bind (AbstractPlainSocketImpl.java:382)
java.net.ServerSocket.bind (ServerSocket.java:375)
java.net.ServerSocket.bind (ServerSocket.java:329)
clojure.tools.nrepl.server/start-server (server.clj:149)
clojure.tools.nrepl.server/start-server (server.clj:121)
shadow.cljs.devtools.server.nrepl/start (nrepl.clj:278)
shadow.cljs.devtools.server.nrepl/start (nrepl.clj:266)
but.. when I run this in the maria project I don’t see any main
processes so maybe i’m just not seeing them
it starts out as java, and then at some point changes to main
(or the first process ends and another one called main
starts, however that works)
PID TT STAT TIME COMMAND
77080 ?? Ss 1:20.61 /usr/bin/java -Djava.util.logging.config.file=target
same — while it’s loading it is called java
, around the time it’s finished loading the name changes to main
this still never works:
mattpro:editor MattPro$ npx shadow-cljs start; npx shadow-cljs clj-run '(+ 1 1);'
shadow-cljs - config: /Users/MattPro/Documents/sites2017/maria/editor/shadow-cljs.edn version: 2.0.144
shadow-cljs - server starting ..................................................... ready!
shadow-cljs - config: /Users/MattPro/Documents/sites2017/maria/editor/shadow-cljs.edn version: 2.0.144
shadow-cljs - connected to server
shadow-cljs - socket connect failed, server process dead?
npx shadow-cljs start; npx shadow-cljs clj-eval '(+ 1 1)'
shadow-cljs - config: /mnt/c/code/tmp/cljs-bg/shadow-cljs.edn version: 2.0.144
shadow-cljs - updating dependencies
Retrieving thheller/shadow-cljs/2.0.144/shadow-cljs-2.0.144.pom from
Retrieving thheller/shadow-cljs/2.0.144/shadow-cljs-2.0.144.jar from
shadow-cljs - dependencies updated
shadow-cljs - server starting ........................................ ready!
shadow-cljs - config: /mnt/c/code/tmp/cljs-bg/shadow-cljs.edn version: 2.0.144
shadow-cljs - connected to server
2
i have ssh’d into circleci right now, so whatever OS they are running, and same thing:
root@b4b33f696572:~# cd project/editor/
root@b4b33f696572:~/project/editor# npx shadow-cljs stop;
shadow-cljs - config: /root/project/editor/shadow-cljs.edn version: 2.0.140
shadow-cljs - server not running
root@b4b33f696572:~/project/editor# npx shadow-cljs start; npx shadow-cljs clj-eval '(+ 1 1)'
shadow-cljs - config: /root/project/editor/shadow-cljs.edn version: 2.0.140
shadow-cljs - server starting ........................... ready!
shadow-cljs - config: /root/project/editor/shadow-cljs.edn version: 2.0.140
shadow-cljs - connected to server
shadow-cljs - socket connect failed, server process dead?
deleted pid file, please retry command to start new server
root@b4b33f696572:~/project/editor#
root@b4b33f696572:~/project/editor# cd target/shadow-cljs/
root@b4b33f696572:~/project/editor/target/shadow-cljs# ls
builds jar-manifest server.pid shadow-cljs.log.0
classpath.edn logging.properties server.stderr.log shadow-cljs.log.0.lck
http.port nrepl.port server.stdout.log socket-repl.port
root@b4b33f696572:~/project/editor/target/shadow-cljs#
root@b4b33f696572:~/project/editor/target/shadow-cljs# cat server.stderr.log
shadow-cljs - HTTP server for ":live" available at
root@b4b33f696572:~/project/editor/target/shadow-cljs# cat server.stdout.log
shadow-cljs - server running at
shadow-cljs - nrepl running at /0.0.0.0:7888
root@b4b33f696572:~/project/editor/target/shadow-cljs#
root@b4b33f696572:~/project/editor/target/shadow-cljs# curl
<!DOCTYPE html>
<html lang="en"><head><link as="script" href="/js/ui.js" rel="preload"><title>shadow-cljs</title><style>body { font-size: 12px; font-family: Menlo, monospace; padding: 10px; margin: 0;</style></head><body><h1>shadow-cljs</h1><h2>Project: /root/project/editor</h2><ul><li><a href="/release-snapshots">Release Snapshots</a></li></ul><h2>HTTP Servers</h2><ul><li><a href="http://localhost:8701">http://localhost:8701 - :live</a></li></ul><div id="root"></div><script data-fn="shadow.cljs.ui.app.init" data-ref="none" type="shadow/run"></script><script defer src="/js/ui.js"></script></body></html>
root@b4b33f696572:~/project/editor# npx shadow-cljs stop
shadow-cljs - config: /root/project/editor/shadow-cljs.edn version: 2.0.140
shadow-cljs - server not running
root@b4b33f696572:~/project/editor# curl
<!DOCTYPE html>
<html lang="en"><head><link as="script" href="/js/ui.js" rel="preload"><title>shadow-cljs</title><style>body { font-size: 12px; font-family: Menlo, monospace; padding: 10px; margin: 0;</style></head><body><h1>shadow-cljs</h1><h2>Project: /root/project/editor</h2><ul><li><a href="/release-snapshots">Release Snapshots</a></li></ul><h2>HTTP Servers</h2><ul><li><a href="http://localhost:8701">http://localhost:8701 - :live</a></li></ul><div id="root"></div><script data-fn="shadow.cljs.ui.app.init" data-ref="none" type="shadow/run"></script><script defer src="/js/ui.js"></script></body></html>
yeah the older version still kills the port file, so none of the later commands works
shadow-cljs - socket connect failed, server process dead?
deleted pid file, please retry command to start new server
after updating, server starting seems to go on forever. i also tried rm -rf target
root@b4b33f696572:~/project/editor# npx shadow-cljs start
shadow-cljs - config: /root/project/editor/shadow-cljs.edn version: 2.0.144
shadow-cljs - updating dependencies
shadow-cljs - dependencies updated
shadow-cljs - server starting .........................................................................................................................................................................................................................................................................................................................................
oh, i see. the version deployed to maria on GH still has nrepl-port specified so in stderr we have:
[2018-01-28 11:01:13 - WARNING] TCP Port 9630 in use.
BindException: Address already in use (Bind failed)
java.net.PlainSocketImpl.socketBind (PlainSocketImpl.java:-2)
java.net.AbstractPlainSocketImpl.bind (AbstractPlainSocketImpl.java:387)
java.net.ServerSocket.bind (ServerSocket.java:375)
java.net.ServerSocket.bind (ServerSocket.java:329)
clojure.tools.nrepl.server/start-server (server.clj:149)
clojure.tools.nrepl.server/start-server (server.clj:121)
shadow.cljs.devtools.server.nrepl/start (nrepl.clj:278)
shadow.cljs.devtools.server.nrepl/start (nrepl.clj:266)
but instead of throwing that error it keeps trying to start
shadow-cljs - server starting ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
i thought putting a sleep
command in between start & the command would be a fix for all of this, but my colleague (on mac os) still got that same error even with shadow-cljs start && sleep 2 && shadow-cljs clj-run ...
mattpro:editor MattPro$ npx shadow-cljs start && npx shadow-cljs clj-eval :foo
shadow-cljs - config: /Users/MattPro/Documents/sites2017/maria/editor/shadow-cljs.edn version: 2.0.144
shadow-cljs - updating dependencies
shadow-cljs - dependencies updated
shadow-cljs - server starting ................................................... ready!
shadow-cljs - config: /Users/MattPro/Documents/sites2017/maria/editor/shadow-cljs.edn version: 2.0.144
shadow-cljs - connected to server
shadow-cljs - socket connect failed, server process dead?
I have no clue what is happening. the node process that starts the server waits until the port file appears
what I don't get is why it works on my machine. macOS version shouldn't make a difference
adding a sleep 1
works for me now, but that is the same command that didn’t work for my colleague
I'll just shuffle things arround a bit so that the node process waits a bit until after the file appears
i am not clear on the difference between what i get locally and the stuff i am replicating on circleci
^^ there i am running shadow-cljs start
and clj-eval
as two separate commands (no sleep) and getting an error
you could fork that repo & add to circleci to ssh in if you wanted to try other stuff (https://github.com/mhuebert/shadow-circleci) it is just a plain docker image with java+node+git
right. is what’s happening there different in some way from what happens on my machine?
[email protected]
should hopefully fix this
my test works too: https://circleci.com/gh/mhuebert/shadow-circleci/3
how do I fix require namespaces from cljsjs? I found out that I need to include a maping of a sort, but can't get it to work
The required namespace "cljsjs.semantic-ui-react" is not available, it was required by "soda_ash/core.cljs".