[
https://issues.apache.org/jira/browse/STORM-200?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14048615#comment-14048615
]
ASF GitHub Bot commented on STORM-200:
--------------------------------------
Github user dashengju commented on the pull request:
https://github.com/apache/incubator-storm/pull/38#issuecomment-47627909
@d2r , I have merged your patch.
under ubuntu, run all the tests successfully with 10 times;
But under centos 6, always hang by test-builtin-metrics-2 case. It seems
your patch does not work.
========== below is the stdout error info
==============================================================
114011 [main] ERROR backtype.storm.metrics-test - Error in cluster
java.lang.AssertionError: Test timed out (30000ms)
at
backtype.storm.metrics_test$wait_for_atleast_N_buckets_BANG_.invoke(metrics_test.clj:74)
~[na:na]
at
backtype.storm.metrics_test$fn__1689$fn__1690.invoke(metrics_test.clj:288)
~[na:na]
at
backtype.storm.metrics_test$fn__1689.invoke(metrics_test.clj:252) [na:na]
at clojure.test$test_var$fn__7145.invoke(test.clj:701)
[clojure-1.5.1.jar:na]
at clojure.test$test_var.invoke(test.clj:701) [clojure-1.5.1.jar:na]
at
clojure.test$test_all_vars$fn__7149$fn__7156.invoke(test.clj:717)
[clojure-1.5.1.jar:na]
at clojure.test$default_fixture.invoke(test.clj:671)
[clojure-1.5.1.jar:na]
at clojure.test$test_all_vars$fn__7149.invoke(test.clj:717)
[clojure-1.5.1.jar:na]
at clojure.test$default_fixture.invoke(test.clj:671)
[clojure-1.5.1.jar:na]
at clojure.test$test_all_vars.invoke(test.clj:713)
[clojure-1.5.1.jar:na]
at clojure.test$test_ns.invoke(test.clj:736) [clojure-1.5.1.jar:na]
at clojure.core$map$fn__4207.invoke(core.clj:2487)
[clojure-1.5.1.jar:na]
at clojure.lang.LazySeq.sval(LazySeq.java:42) [clojure-1.5.1.jar:na]
at clojure.lang.LazySeq.seq(LazySeq.java:60) [clojure-1.5.1.jar:na]
at clojure.lang.Cons.next(Cons.java:39) [clojure-1.5.1.jar:na]
at clojure.lang.RT.boundedLength(RT.java:1654)
[clojure-1.5.1.jar:na]
at clojure.lang.RestFn.applyTo(RestFn.java:130)
[clojure-1.5.1.jar:na]
at clojure.core$apply.invoke(core.clj:619) [clojure-1.5.1.jar:na]
at clojure.test$run_tests.doInvoke(test.clj:751)
[clojure-1.5.1.jar:na]
at clojure.lang.RestFn.invoke(RestFn.java:408)
[clojure-1.5.1.jar:na]
at
com.theoryinpractise.clojure.testrunner$eval8077$fn__8082$fn__8118.invoke(run-test7173011794914230650.clj:102)
[na:na]
at
com.theoryinpractise.clojure.testrunner$eval8077$fn__8082.invoke(run-test7173011794914230650.clj:99)
[na:na]
at
com.theoryinpractise.clojure.testrunner$eval8077.invoke(run-test7173011794914230650.clj:72)
[na:na]
at clojure.lang.Compiler.eval(Compiler.java:6619)
[clojure-1.5.1.jar:na]
at clojure.lang.Compiler.load(Compiler.java:7064)
[clojure-1.5.1.jar:na]
at clojure.lang.Compiler.loadFile(Compiler.java:7020)
[clojure-1.5.1.jar:na]
at clojure.main$load_script.invoke(main.clj:294)
[clojure-1.5.1.jar:na]
at clojure.main$script_opt.invoke(main.clj:356)
[clojure-1.5.1.jar:na]
at clojure.main$main.doInvoke(main.clj:440) [clojure-1.5.1.jar:na]
at clojure.lang.RestFn.invoke(RestFn.java:408)
[clojure-1.5.1.jar:na]
at clojure.lang.Var.invoke(Var.java:415) [clojure-1.5.1.jar:na]
at clojure.lang.AFn.applyToHelper(AFn.java:161)
[clojure-1.5.1.jar:na]
at clojure.lang.Var.applyTo(Var.java:532) [clojure-1.5.1.jar:na]
at clojure.main.main(main.java:37) [clojure-1.5.1.jar:na]
114013 [main] INFO backtype.storm.daemon.nimbus - Shutting down master
114016 [main] INFO backtype.storm.daemon.nimbus - Shut down master
114022 [main] INFO backtype.storm.daemon.supervisor - Shutting down
a9fd8203-4ad0-419a-8287-09acedc6d16b:f8b7e9ce-98c2-472f-8deb-c73223b3abd0
114022 [main] INFO backtype.storm.process-simulator - Killing process
e3a0b0c3-d589-4861-8e46-0eeb660db114
114023 [main] INFO backtype.storm.daemon.worker - Shutting down worker
metrics-tester-1-0 a9fd8203-4ad0-419a-8287-09acedc6d16b 1024
114023 [main] INFO backtype.storm.daemon.worker - Shutting down receive
thread
114023 [main] INFO backtype.storm.messaging.loader - Shutting down
receiving-thread: [metrics-tester-1-0, 1024]
114024 [main] INFO backtype.storm.messaging.loader - Waiting for
receiving-thread:[metrics-tester-1-0, 1024] to die
114024 [Thread-621-worker-receiver-thread-0] INFO
backtype.storm.messaging.loader - Receiving-thread:[metrics-tester-1-0, 1024]
received shutdown notice
114024 [main] INFO backtype.storm.messaging.loader - Shutdown
receiving-thread: [metrics-tester-1-0, 1024]
114024 [main] INFO backtype.storm.daemon.worker - Shut down receive thread
114024 [main] INFO backtype.storm.daemon.worker - Terminating messaging
context
114025 [main] INFO backtype.storm.daemon.worker - Shutting down executors
114025 [main] INFO backtype.storm.daemon.executor - Shutting down executor
__metricsclojure.storm.metric.testing.FakeMetricConsumer:[2 2]
114026 [Thread-611-disruptor-executor[2 2]-send-queue] INFO
backtype.storm.util - Async loop interrupted!
========== below is jstack of main thread
==============================================================
"main" prio=10 tid=0x00007f0ce0006000 nid=0x288e in Object.wait()
[0x00007f0ce8789000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00000000c4c0d1c0> (a java.lang.Thread)
at java.lang.Thread.join(Thread.java:1258)
- locked <0x00000000c4c0d1c0> (a java.lang.Thread)
at java.lang.Thread.join(Thread.java:1332)
at backtype.storm.util$async_loop$reify__459.join(util.clj:455)
at sun.reflect.GeneratedMethodAccessor53.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at clojure.lang.Reflector.invokeMatchingMethod(Reflector.java:93)
at
clojure.lang.Reflector.invokeNoArgInstanceMember(Reflector.java:298)
at
backtype.storm.daemon.executor$mk_executor$reify__4104.shutdown(executor.clj:353)
at sun.reflect.GeneratedMethodAccessor71.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at clojure.lang.Reflector.invokeMatchingMethod(Reflector.java:93)
at
clojure.lang.Reflector.invokeNoArgInstanceMember(Reflector.java:298)
at
backtype.storm.daemon.worker$fn__4530$exec_fn__1774__auto____4531$shutdown_STAR___4549.invoke(worker.clj:392)
at
backtype.storm.daemon.worker$fn__4530$exec_fn__1774__auto__$reify__4575.shutdown(worker.clj:423)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at clojure.lang.Reflector.invokeMatchingMethod(Reflector.java:93)
at
clojure.lang.Reflector.invokeNoArgInstanceMember(Reflector.java:298)
at
backtype.storm.process_simulator$kill_process.invoke(process_simulator.clj:46)
- locked <0x00000000c4842af0> (a java.lang.Object)
at
backtype.storm.daemon.supervisor$shutdown_worker.invoke(supervisor.clj:173)
at
backtype.storm.daemon.supervisor$fn__4967$exec_fn__1774__auto__$reify__4976.shutdown_all_workers(supervisor.clj:411)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at clojure.lang.Reflector.invokeMatchingMethod(Reflector.java:93)
at
clojure.lang.Reflector.invokeNoArgInstanceMember(Reflector.java:298)
at
backtype.storm.testing$kill_local_storm_cluster.invoke(testing.clj:172)
at
backtype.storm.metrics_test$fn__456$fn__457.invoke(metrics_test.clj:252)
at backtype.storm.metrics_test$fn__456.invoke(metrics_test.clj:252)
at clojure.test$test_var$fn__7145.invoke(test.clj:701)
at clojure.test$test_var.invoke(test.clj:701)
at clojure.test$test_all_vars$fn__7149$fn__7156.invoke(test.clj:717)
at clojure.test$default_fixture.invoke(test.clj:671)
at clojure.test$test_all_vars$fn__7149.invoke(test.clj:717)
at clojure.test$default_fixture.invoke(test.clj:671)
at clojure.test$test_all_vars.invoke(test.clj:713)
at clojure.test$test_ns.invoke(test.clj:736)
at clojure.core$map$fn__4207.invoke(core.clj:2487)
at clojure.lang.LazySeq.sval(LazySeq.java:42)
- locked <0x00000000c4806f10> (a clojure.lang.LazySeq)
at clojure.lang.LazySeq.seq(LazySeq.java:60)
- locked <0x00000000c4806f10> (a clojure.lang.LazySeq)
at clojure.lang.Cons.next(Cons.java:39)
at clojure.lang.RT.boundedLength(RT.java:1654)
at clojure.lang.RestFn.applyTo(RestFn.java:130)
at clojure.core$apply.invoke(core.clj:619)
at clojure.test$run_tests.doInvoke(test.clj:751)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at
com.theoryinpractise.clojure.testrunner$eval700$fn__705.invoke(run-test4685934117261617748.clj:48)
at
com.theoryinpractise.clojure.testrunner$eval700.invoke(run-test4685934117261617748.clj:38)
at clojure.lang.Compiler.eval(Compiler.java:6619)
at clojure.lang.Compiler.load(Compiler.java:7064)
at clojure.lang.Compiler.loadFile(Compiler.java:7020)
at clojure.main$load_script.invoke(main.clj:294)
at clojure.main$script_opt.invoke(main.clj:356)
at clojure.main$main.doInvoke(main.clj:440)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at clojure.lang.Var.invoke(Var.java:415)
at clojure.lang.AFn.applyToHelper(AFn.java:161)
at clojure.lang.Var.applyTo(Var.java:532)
at clojure.main.main(main.java:37)
> Proposal for Multilang's Metrics feature
> ----------------------------------------
>
> Key: STORM-200
> URL: https://issues.apache.org/jira/browse/STORM-200
> Project: Apache Storm (Incubating)
> Issue Type: New Feature
> Reporter: DashengJu
> Priority: Minor
> Attachments: update.patch
>
>
> Storm 0.9.0.1 exposes a metrics interface to report summary statistics across
> the full topology. We can build our own metric, and build metrics consumer to
> use those statistics.
> But when we use Multilang(ie. Python), we can not use this feature. So we
> want to summit a proposal for multilang's metrics.
> The specifics of the proposal:
> 1. The main idea is: when user want to add a metric statistics in
> multilang(python) bolt,
> a) he need first create a metric object and register in ShellBolt's
> sub-class,
> b) then update the metric in Python bolt process through RPC call.
> 2. In Metrics API:
> a) extend IMetric interface add a method for RPC call:public void
> updateMetricFromRPC(List<Object> params);
> b) modify IMetric implements, to support updateMetricFromRPC;
> 3. In ShellBolt,
> a) we have a Map<String, IMetric> to hold user's registered metrics
> object;
> b) we have a method registerMetric(String name, T metric) for user to
> register their metris object;
> c) we have a method handleMetrics(Map action) to handle RPC call from
> Python process;
> 4) In Multilang protocol: add a command "metrics" for shell process to make
> RPC call. The protocol is: {"command":"metrics",
> "name":"metric-registerd-name", "params":["param-1", param-2]}
> 5) In storm.py:add rpcMetrics(name, params), user can update remote metric
> through this RPC call.
> any suggestions?
--
This message was sent by Atlassian JIRA
(v6.2#6252)