This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2016-09-05
Channels
- # bangalore-clj (4)
- # boot (196)
- # chestnut (1)
- # cider (4)
- # clara (3)
- # cljs-dev (23)
- # cljsjs (28)
- # cljsrn (1)
- # clojure (79)
- # clojure-art (1)
- # clojure-berlin (1)
- # clojure-hk (17)
- # clojure-italy (5)
- # clojure-korea (1)
- # clojure-russia (21)
- # clojure-spec (5)
- # clojure-uk (26)
- # clojurescript (125)
- # core-async (1)
- # cursive (23)
- # datomic (7)
- # emacs (17)
- # hoplon (51)
- # jobs (2)
- # leiningen (2)
- # om (11)
- # om-next (26)
- # onyx (39)
- # pedestal (9)
- # proton (4)
- # re-frame (43)
- # reagent (1)
- # ring (2)
- # slack-help (12)
- # sydney (4)
- # test-check (9)
- # yada (40)
The method
(defmethod extensions/subscribe-to-log ZooKeeper
is sending some exception to the channel via
(catch java.lang.IllegalStateException e
(trace e)
;; Curator client has been shutdown, pass exception along
(>!! ch e))
(catch org.apache.zookeeper.KeeperException$ConnectionLossException e
;; ZooKeeper has been shutdown, pass exception along
(trace e)
(>!! ch e))
(catch org.apache.zookeeper.KeeperException$SessionExpiredException e
(trace e)
(>!! ch e))
(catch Throwable e
(fatal e)
(>!! ch e)
so when platform is applying entry from log via
(when-let [entry (<!! ch)]
(let [result (extensions/apply-log-entry entry (:replica @replica-state))
then entry is an exception end there is no defmethod fot this kind of entry
The question is - should this exception be applied into replica or should it be ignored?Hmm. Right, so for the peers we do check if it's an exception, and we restart the peer because the zookeeper connection is in a bad state. However, I assume you're talking about the dashboard / playing back the log for monitoring
yes, I am playing with the dashboard currently
For, say, the dashboard, it should also check whether the value is an instance of throwable. If it is, it should treat it as a connection loss, maybe display something to the user, and then try to subscribe to the log again / re-establish the connection.
ie. I would escape back to the same logic / handling that you were thinking of adding for when it can't connect in the first place
Yes, am going to this direction for implementation of showing connection problems in the dashboard.
I use plugin onyx-http, and when post data to server I get error in onyx.log, help me someone)
Exception message: Output of write-batch does not match schema: {(not (= (name (:onyx.core)) (namespace :onyx.core/written?))) invalid-key}[m
[1merror[m: {(not (= (name (:onyx.core)) (namespace :onyx.core/written?))) invalid-key}
[1mjob-id[m: #uuid "70f04a36-867f-484f-9658-9dc2883c093d"
[1mmetadata[m: {:job-id #uuid "70f04a36-867f-484f-9658-9dc2883c093d", :job-hash "f9a4c4fa748dfd6e702b9f3be3163e74f2ed046a32180b45c83f2905711139"}
[1mpeer-id[m: #uuid "a8ffeeea-13ab-404e-9fd0-e1e917bd6ec9"
[1mschema[m: {#schema.core.OptionalKey{:k :onyx.core/batch} [Any], :onyx.core/seal-ch Any, :onyx.core/outbox-ch Any, :onyx.core/kill-ch Any, :onyx.core/log-prefix java.lang.String, :onyx.core/workflow (constrained [(constrained [(pred task-name?)] edge-two-nodes?)] vector?), <#C1923ED97|schema>.core.OptionalKey{:k :onyx.core/state-ch} Any, :onyx.core/id java.util.UUID, <#C1923ED97|schema>.core.OptionalKey{:k :onyx.core/state-log} Any, :onyx.core/peer-replica-view Any, ...}
[1mtask-name[m: :send-global-order
[1mtype[m: :schema.core/error
[1mvalue[m: {:onyx.core/seal-ch #object[clojure.core.async.impl.channels.ManyToManyChannel 0x5cba17f0
Oh dear. Yes, it shouldn't be using onyx.core/written since it's a plugin
I can fix the plugin. I assume this is via with-test-env?
K. This is because with-test-env is doing extra schema checking. What version of Onyx / onyx-http are you using? I can cut you a snapshot
Actually, onyx-http 0.9.9 doesnât assoc to onyx.core/written?. Can you try using onyx 0.9.9 and onyx-http 0.9.9.0 if youâre not already?
Those are the versions that give the error?
k, investigating
Are you using any other plugins?
That should not give that error
[org.onyxplatform/onyx-kafka-0.8 "0.9.9.0"] [org.onyxplatform/onyx-http "0.9.10.0-beta1"] [org.onyxplatform/onyx-metrics "0.9.9.0"] [org.onyxplatform/onyx-seq "0.9.9.0"]
Youâre not happening to use onyx-s3 or anything are you?
oh nevermind. thatâs the ancient deprecated one
Can you check your own code for the string
onyx.core/written?
not sure how that could be happening with any of the recent plugins
Can you call lein deps :tree and make sure itâs actually using onyx-http 0.9.10.0-beta1?
and maybe try lein clean? đŽ
Is there any reason you canât switch to the âofficialâ one? We brought @v.solovyovâs version in house
I think we pretty much maintained compatibility, but if thereâs something missing let me know and I will add it.
heh, my version probably was just left in project.clj unnoticed
Yeah, it sounds like it đ
No worries. Glad you figured it out.