core-async

kwladyka 2020-02-28T10:00:00.186100Z

ha I was right, the job in queue never finish for some reason. Now I have to figure out why. queue-warehouse finish jobs and wait for new jobs, so this is not deadlock. But I have to figure out why the hell queue job freeze during the process.

kwladyka 2020-02-28T10:04:16.187100Z

How would you solve this? How to figure out on which line the app freeze during the processโ€ฆ I can add debugs everywhere, but it can take a lot of time to guess.

serioga 2020-02-28T11:57:48.188700Z

@kwladyka Add timeouts. Generate alert when timeout occurs. https://clojurians.slack.com/archives/C05423W6H/p1582884256187100

๐Ÿ‘ 1
fmjrey 2020-02-28T11:58:09.189100Z

And the cli itself of course: https://lambdaisland.com/blog/2019-12-15-advent-of-parens-15-jcmd-and-jstack

๐Ÿ‘ 1
2020-02-28T19:50:36.191600Z

Is there an actual difference between pipeline and pipeline-blocking? In the source, both functions call out to pipeline* - the first passes :compute as the "type" argument, and the second passes :blocking But it looks like both of those conditions fall into the same case https://github.com/clojure/core.async/blob/1c5efa72ebf65cd23315311d2bc3d890b780696e/src/main/clojure/clojure/core/async.clj#L520

alexmiller 2020-02-28T19:52:32.192300Z

currently, no

alexmiller 2020-02-28T19:52:53.192800Z

conceptually, use pipeline for cpu-only tasks, use pipeline-blocking if your task has i/o or other blocking ops

alexmiller 2020-02-28T19:53:09.193100Z

and then we won't break you if we change the executor implementation in the future

2020-02-28T19:53:31.193300Z

Fair enough, thank you!

alexmiller 2020-02-28T19:53:51.193800Z

pipeline could potentially used its own fixed size pool in the future