This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2023-11-30
Channels
- # admin-announcements (1)
- # adventofcode (2)
- # announcements (2)
- # babashka (60)
- # beginners (48)
- # cherry (1)
- # cider (16)
- # clj-kondo (4)
- # clojure (53)
- # clojure-belgium (3)
- # clojure-europe (20)
- # clojure-nl (1)
- # clojure-norway (6)
- # clojure-poland (4)
- # clojure-uk (6)
- # clojuredesign-podcast (19)
- # clojurescript (39)
- # community-development (12)
- # cursive (4)
- # datalevin (7)
- # datomic (23)
- # honeysql (14)
- # hyperfiddle (3)
- # instaparse (3)
- # lsp (3)
- # malli (10)
- # off-topic (34)
- # overtone (8)
- # polylith (2)
- # re-frame (9)
- # reitit (3)
- # releases (1)
- # squint (16)
- # timbre (7)
- # wasm (2)
- # xtdb (8)
Hey! Is there some kind of cache on pull selectors? I’m experiencing weird issues where a selector is failing (returning incomplete data), restarting fix the issue but when it occurs it’s very selector specific: any change to the selector fixes it.
looks like a yes https://github.com/juji-io/datalevin/blob/733bbf309221b8a87204e15d16b3be23807b3a8f/src/datalevin/pull_api.cljc#L311
:man-shrugging: I’ll investigate more next week. It’s very bizarre it looks like a combination of state & cache: the pull works until it stops working and once it stops working we can make it work by just modifying the selector (like swapping the order of two attributes). Thus the workaround (changing the cache key) hints to caching but the behavior (pull stopping to work) hints that there’s something stateful directly or indirectly associated with the cache key.
I have no clear repro yet (I will certainly revisit it in a couple of weeks). Something crossed my mind today: what if it’s a bug with cycles detection in pull request? (The thing which returns just {:db/id xxx}
when the entity is already seen.) this would explain the failure mode. Anyway I hope the bug is gone now that you removed the cache.