This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2021-06-24
Channels
- # babashka (11)
- # beginners (62)
- # calva (9)
- # cider (7)
- # clj-kondo (18)
- # cljfx (2)
- # cljsrn (4)
- # clojure (55)
- # clojure-australia (3)
- # clojure-dev (2)
- # clojure-europe (39)
- # clojure-italy (3)
- # clojure-nl (3)
- # clojure-spec (5)
- # clojure-uk (5)
- # clojured (7)
- # clojurescript (16)
- # clojureverse-ops (2)
- # conjure (22)
- # cursive (12)
- # data-science (13)
- # datomic (8)
- # duct (7)
- # emacs (11)
- # events (1)
- # fulcro (12)
- # helix (10)
- # integrant (21)
- # introduce-yourself (5)
- # jobs (2)
- # jobs-discuss (16)
- # lsp (1)
- # malli (5)
- # meander (7)
- # membrane (9)
- # pathom (9)
- # reitit (5)
- # releases (3)
- # ring (2)
- # sci (18)
- # shadow-cljs (35)
- # sql (15)
Hey we have a prod service using Pathom2 and started to see some weird behavior for some queries. After reducing the query’s scope to two attributes we can see errors like this:
"Assert failed: Tried to remove node that still contains references pointing to it. Move\n the run-next references from the pointer nodes before removing it.\n(if after-nodes (every? (fn* [p1__41590#] (not= node-id (-> (get-node graph p1__41590#) :com.wsscode.pathom.connect.planner/run-next))) after-nodes) true)"
Do you have any pointer what should we look for during investigation?Interestingly changing the order of the two problematic attributes in the query fixes the problem. Still we would like to understand the issue and potentially fix it
hello Janos, from the error message I assume you are using reader3?
That's correct. Back when this service was implemented, there were performance tests done and based on the results the team went with async-parser + reader3
that reader is experimental in pathom 2, the planner there is stopped, if porting to reader2 makes performance too bad, them maybe better to try to use Pathom 3 (which uses a much more evolved version of the algorithm used in reader3 on Pathom 2)
I would be happy to migrate to that just didn't know that it's already has all the features pathom2 had
I mean, reader3 is as risk as it, there may be some internal breakages in pathom3, but the external api is mostly stable, the prod stable still is the reader2 on Pathom 2, but between reader3 and pathom 3, pathom 3 has a better algorithm, because its an evolution of reader3 (which wont be getting any updates)