I got an error with pacemaker on storm’s worker when using storm 1.1.0 to run my topology。 ->java.lang.IllegalArgumentException: No matching field found: waitUntilReady for class org.apache.storm.pacemaker.PacemakerClient
It seems when using reflection,the invoker can’t find method waitUntilReady? But I find this method in the source code of PacemakerClient:private void waitUntilReady() throws PacemakerConnectionException { } When I use storm 1.0.1 with the same topology code and the same config,the communication from worker to pacemaker was running well, without this exception。
I packaged the topology using jdk1.8 and the storm1.1.0 was started using jdk1.8 too!
I have the config of pacemaker with strom 1.1.0 like this:
pacemaker.servers: ["exp104.didatick.com"] pacemaker.port: 6699 pacemaker.max.threads: 10 pacemaker.childopts: "-Xmx512m" pacemaker.auth.method: "NONE" storm.cluster.state.store: "org.apache.storm.pacemaker.pacemaker_state_factory"
The Full Stacktrace:
2017-04-16 17:08:50.896 o.a.s.d.worker main [INFO] Worker 855fbf1e-d23d-400f-b181-1a0934720bbf for storm TRIDENT-TEST-4-1492333594 on 47d8b370-85c2-41d1-b4e6-e63fbf832bff:6700 has finished loading 2017-04-16 17:08:50.998 o.a.s.p.pacemaker-state-factory executor-heartbeat-timer [ERROR] Failed to set_worker_hb. Will make [10] more attempts. java.lang.IllegalArgumentException: No matching field found: waitUntilReady for class org.apache.storm.pacemaker.PacemakerClient at clojure.lang.Reflector.getInstanceField(Reflector.java:271) ~[clojure-1.7.0.jar:?] at clojure.lang.Reflector.invokeNoArgInstanceMember(Reflector.java:315) ~[clojure-1.7.0.jar:?] at org.apache.storm.pacemaker.pacemaker_state_factory$get_pacemaker_write_client.invoke(pacemaker_state_factory.clj:110) ~[storm-core-1.1.0.jar:1.1.0] at org.apache.storm.pacemaker.pacemaker_state_factory$_mkState$reify__12511$fn__12512.invoke(pacemaker_state_factory.clj:187) ~[storm-core-1.1.0.jar:1.1.0] at org.apache.storm.pacemaker.pacemaker_state_factory$pacemaker_retry_on_exception$fn__12506.invoke(pacemaker_state_factory.clj:139) ~[storm-core-1.1.0.jar:1.1.0] at org.apache.storm.pacemaker.pacemaker_state_factory$pacemaker_retry_on_exception.invoke(pacemaker_state_factory.clj:139) [storm-core-1.1.0.jar:1.1.0] at org.apache.storm.pacemaker.pacemaker_state_factory$_mkState$reify__12511.set_worker_hb(pacemaker_state_factory.clj:183) [storm-core-1.1.0.jar:1.1.0] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_92] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_92] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_92] at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_92] at clojure.lang.Reflector.invokeMatchingMethod(Reflector.java:93) [clojure-1.7.0.jar:?] at clojure.lang.Reflector.invokeInstanceMethod(Reflector.java:28) [clojure-1.7.0.jar:?] at org.apache.storm.cluster$mk_storm_cluster_state$reify__4395.worker_heartbeat_BANG_(cluster.clj:468) [storm-core-1.1.0.jar:1.1.0] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_92] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_92] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_92] at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_92] at clojure.lang.Reflector.invokeMatchingMethod(Reflector.java:93) [clojure-1.7.0.jar:?] at clojure.lang.Reflector.invokeInstanceMethod(Reflector.java:28) [clojure-1.7.0.jar:?] at org.apache.storm.daemon.worker$do_executor_heartbeats.doInvoke(worker.clj:76) [storm-core-1.1.0.jar:1.1.0] at clojure.lang.RestFn.invoke(RestFn.java:439) [clojure-1.7.0.jar:?] at org.apache.storm.daemon.worker$fn__5542$exec_fn__1364__auto__$reify__5544$fn__5547.invoke(worker.clj:624) [storm-core-1.1.0.jar:1.1.0] at org.apache.storm.timer$schedule_recurring$this__1737.invoke(timer.clj:105) [storm-core-1.1.0.jar:1.1.0] at org.apache.storm.timer$mk_timer$fn__1720$fn__1721.invoke(timer.clj:50) [storm-core-1.1.0.jar:1.1.0] at org.apache.storm.timer$mk_timer$fn__1720.invoke(timer.clj:42) [storm-core-1.1.0.jar:1.1.0] at clojure.lang.AFn.run(AFn.java:22) [clojure-1.7.0.jar:?] at java.lang.Thread.run(Thread.java:745) [?:1.8.0_92]