Question: but no exception from the Clojure process?

Asked By
dnolen
Asked At
2018-03-07 16:23:30

Found 15 possible answers.

User Answered At Possible Answer
mfikes 2018-03-07 16:24:20 No... but I can try to ascertain more about precicely how it is failing. Perhaps the simple web server we are running craps out in a way that says something... Will look
dnolen 2018-03-07 16:24:39 probably an exception in a thread or a deadlock
mfikes 2018-03-07 16:25:06 Yeah, I'll get to the bottom of it; it is trivial to repro so I'll have more info shortly
dnolen 2018-03-07 16:25:22 I think the way that the browser REPL works is susceptible to locking up
mfikes 2018-03-07 16:26:22 The amount of time it can run before craping out is heavily dependent on the parameters you put in the Thread/sleep call in the stress test... if you use larger values, things work OK
bhauman 2018-03-07 16:29:44 we are of course assuming that the stress test is revealing the longevity issue, which occurs in the absence of constant interaction
mfikes 2018-03-07 16:30:22 Yeah, I was planning on having longer sleeps in it and just letting it run for hour.s
bhauman 2018-03-07 16:30:48 15 minutes should be enough anyway this is helpful
mfikes 2018-03-07 16:41:26 @dnolen Yeah, perhaps it is a "livelock" (or promise delivery failure). Anyway, you can see that in the last stack here https://gist.github.com/mfikes/71db4c4a50f314824ac9dd0892d5c134
richiardiandrea 2018-03-07 16:57:56 Checking on my mobile, it looks like browser/send-for-eval is starved waiting for the promise to a connection to be deliver
dnolen 2018-03-07 16:58:31 @mfikes boom :slightly_smiling_face: that was my hunch yesterday if we fix that we’ll probably solves all the problems
mfikes 2018-03-07 16:59:52 I'm wondering if it is just a downstream derailment after the browser side indicates the network connection was lost. I'm trying a test involving commenting out some of the .close calls in cljs.repl.server to see if something is prematurely closing. Dunno.
dnolen 2018-03-07 17:00:20 @mfikes I don’t think so but what happened to the first one? but if we get another result we store the promise for later if we get a :result we store the promise for later I think the livelock issue is in the code
mfikes 2018-03-07 17:01:01 Repro is even easier if you do cat repl-input.txt | clj -A:cljs where the repl-input.txt has a lot of lines with keywords to evaluate Ahh, OK, interesting :thinking_face:
dnolen 2018-03-07 17:02:26 but this is great, this is best repro we’ve had so far which I can’t repro on my newer machines @mfikes and also explains your occasional never connect issue

Related Questions