Bad interaction between go, try and fn body

Description

The following code incorrectly uses <! in a fn body within go. This should usually lead to a corresponding AssertionError but if there is a catch clause which catches Exception, this error is silently swallowed and the execution goes into an infinite loop.

Output:

This only happens when there are (catch ...) clauses for any exception types which aren't in the inheritance hierarchy of AssertionError, e.g. it works fine with (catch Error ...) but also fails with (catch RuntimeException ...).

Environment

[org.clojure/clojure "1.8.0"]
[org.clojure/core.async "0.2.374"]

Assignee

Unassigned

Reporter

import

Labels

Approval

None

Patch

None

Priority

Major
Configure