missionary icon indicating copy to clipboard operation
missionary copied to clipboard

Cannot set properties of undefined (setting 'parent')

Open mjmeintjes opened this issue 1 year ago • 2 comments

I just upgraded to the latest version of missionary, and am now getting these errors when one of my flows are cancelled. This is on clojurescript side.

Looking at the code (Ambiguous.cljs:299:43), I can't see where pr is defined.

missionary_utils.cljc:511 TypeError: Cannot set properties of undefined (setting 'parent')
    at Object.missionary$impl$Ambiguous$ready [as ready] (Ambiguous.cljs:299:43)
    at Function.G__234226__0 [as cljs$core$IFn$_invoke$arity$0] (Ambiguous.cljs:330:28)
    at missionary$impl$Ambiguous$transfer (Ambiguous.cljs:251:8)
    at Object.eval [as cljs$core$IDeref$_deref$arity$1] (Ambiguous.cljs:11:19)
    at Object.cljs$core$_deref [as _deref] (core.cljs:688:12)
    at Object.cljs$core$deref [as deref] (core.cljs:1477:4)
    at Object.missionary$impl$Ambiguous$backtrack [as backtrack] (Ambiguous.cljs:33:8)
    at Object.missionary$impl$Ambiguous$branch [as branch] (Ambiguous.cljs:73:8)
    at Object.missionary$impl$Ambiguous$ready [as ready] (Ambiguous.cljs:307:44)
    at Function.G__234223__0 [as cljs$core$IFn$_invoke$arity$0] (Ambiguous.cljs:323:28)

mjmeintjes avatar Mar 08 '23 03:03 mjmeintjes

do you have a repro ?

leonoel avatar Mar 08 '23 12:03 leonoel

[missionary/missionary "b.27"]

scratch.cljs

(ns main.scratch
  (:require [missionary.core :as ms]))
(comment
  (do
    (def input! (atom true))
    (def task
      (ms/reduce
       (constantly nil)
       (ms/ap
        (let [visible? (ms/?< (ms/watch input!) )]
          (println visible?)
          (if visible?
            (try
              (ms/?> (ms/ap
                      (let [n (ms/?> (ms/seed (range 100)))]
                        (ms/? (ms/sleep 1000))
                        (println "TICK: " n))))
              (catch missionary.Cancelled e
                (ms/amb>)))
            nil)))))
    (when (resolve 'cancel) (cancel))
    (def cancel (task println #(js/console.error %))))

  ;; wait a moment, then run
  (reset! input! false)

;; VM1246:400 TypeError: Cannot set properties of undefined (setting 'parent')
;;     at Object.missionary$impl$Ambiguous$ready [as ready] (Ambiguous.cljs:299:43)
;;     at Function.G__17106__0 [as cljs$core$IFn$_invoke$arity$0] (Ambiguous.cljs:330:28)
;;     at missionary$impl$Ambiguous$transfer (Ambiguous.cljs:251:8)
;;     at Object.eval [as cljs$core$IDeref$_deref$arity$1] (Ambiguous.cljs:11:19)
;;     at Object.cljs$core$_deref [as _deref] (core.cljs:688:12)
;;     at Object.cljs$core$deref [as deref] (core.cljs:1477:4)
;;     at Object.missionary$impl$Ambiguous$backtrack [as backtrack] (Ambiguous.cljs:33:8)
;;     at Object.missionary$impl$Ambiguous$branch [as branch] (Ambiguous.cljs:73:8)
;;     at Object.missionary$impl$Ambiguous$ready [as ready] (Ambiguous.cljs:307:44)
;;     at Function.G__17103__0 [as cljs$core$IFn$_invoke$arity$0] (Ambiguous.cljs:323:28)

  )

mjmeintjes avatar Mar 10 '23 01:03 mjmeintjes