先週、何か奇妙なことが起こり、仲間と大きな顔を合わせました. 根本的な原因を突き止める時間はありませんでしたが、今は掘り下げています。先週の木曜日の夜、約 1 か月のアップタイムの後、Compojure で作成した Web サービスのほとんどすべてのインスタンスがダウンしました。同時に、それに依存する製品発売の 5 日前。想像。
Clojure はすでに「フリンジ」であると疑われていましたが、すぐに非難され、ご想像のとおり、これが多くの変化を引き起こしました。燃えた。サービスを Java で書き直して準備を整えましたが、QA からダメと言われました。なんて悪夢だ。今、私には数分ありますが、コミュニティが助けてくれるかどうか本当に疑問に思っています.
失敗に。驚きの 500 エラーが発生したスタック トレースを次に示します。
2013-09-26 18:00:55.934:WARN:oejs.ServletHandler:qtp1525259451-38221: Error for /path/to/api
java.lang.NoClassDefFoundError: clout/core$re_groups_STAR_$iter_242246$fn247$fn_248
at clout.core$re_groups_STAR_$iter_242246$fn_247.invoke(core.clj:23)
at clojure.lang.LazySeq.sval(LazySeq.java:42)
at clojure.lang.LazySeq.seq(LazySeq.java:60)
at clojure.lang.RT.seq(RT.java:484)
at clojure.core$seq.invoke(core.clj:133)
at clojure.core$map$fn__4207.invoke(core.clj:2479)
at clojure.lang.LazySeq.sval(LazySeq.java:42)
at clojure.lang.LazySeq.seq(LazySeq.java:60)
at clojure.lang.RT.seq(RT.java:484)
at clojure.core$seq.invoke(core.clj:133)
at clojure.core$map$fn__4211.invoke(core.clj:2490)
at clojure.lang.LazySeq.sval(LazySeq.java:42)
at clojure.lang.LazySeq.seq(LazySeq.java:60)
at clojure.lang.RT.seq(RT.java:484)
at clojure.core$seq.invoke(core.clj:133)
at clojure.core.protocols$seq_reduce.invoke(protocols.clj:30)
at clojure.core.protocols$fn__6026.invoke(protocols.clj:54)
at clojure.core.protocols$fn_5979$G5974_5992.invoke(protocols.clj:13)
at clojure.core$reduce.invoke(core.clj:6177)
at clout.core$assoc_keys_with_groups.invoke(core.clj:54)
at clout.core.CompiledRoute.route_matches(core.clj:84)
at compojure.core$if_route$fn__515.invoke(core.clj:38)
at compojure.core$if_method$fn__508.invoke(core.clj:24)
Prod eng は次のように述べています。
何がこのようなことを引き起こす可能性がありますか? 他の誰かが「クラスファイルを失っているように見える」と言いましたが、私の知る限り、それが何を意味するのか、どのように起こるのかわかりません...クラウトコアでは、例外をスローした行は次のようになります
(defn re-groups*
"More consistant re-groups that always returns a vector of groups, even if there is only one group."
[^Matcher matcher]
(for [i (range (.groupCount matcher))]
(.group matcher (int (inc i)))))
それで、何が起こっているのですか?バグ?策略?サイクリングせずに Compojure アプリを数か月以上稼働させた人はいますか?