Finally block executed twice

Description

Finally block is executed twice when both the try body and finally block throw. Observed only in the presence of a terminator and at least one catch block.

1 2 3 4 5 6 7 8 9 10 11 12 (go (try (<! (to-chan [0])) ; at least one terminator has to be present (throw (ex-info "a" {})) (catch Exception e "I don't do much but take me away and the bug disappears") (finally (println "executing finally block") (throw (ex-info "b" {}))))) => #object[...] => executing finally block => executing finally block => Exception in thread "async-dispatch-13" clojure.lang.ExceptionInfo: b {}

Environment

core.async 0.4.500
Clojure 1.10.0
Java 1.8
Ubuntu 19.04
Docker image clojure:openjdk-8-tools-deps-1.10.0.442

Status

Assignee

Unassigned

Reporter

Alex Miller

Labels

None

Approval

None

Patch

None

Priority

Major
Configure