[ 
https://issues.apache.org/jira/browse/STORM-1837?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15285278#comment-15285278
 ] 

ASF GitHub Bot commented on STORM-1837:
---------------------------------------

Github user kishorvpatil commented on the pull request:

    https://github.com/apache/storm/pull/1417#issuecomment-219545865
  
    The code changes look good. 
    I ran unit test and had `netty_unit_test` timeout once. I think we need to 
change the timeout for 
https://github.com/apache/storm/blob/master/storm-core/test/clj/org/apache/storm/messaging/netty_unit_test.clj#L115
    
    ```
    <error message="Uncaught exception, not in assertion.">Uncaught exception, 
not in assertion.
    expected: nil
      actual: java.lang.AssertionError: Test timed out (5000ms) (empty? 
(.getLoad client [(int 1) (int 2)]))
     at org.apache.storm.messaging.netty_unit_test$test_load_fn.invoke 
(netty_unit_test.clj:115)
        org.apache.storm.messaging.netty_unit_test/fn (netty_unit_test.clj:143)
        clojure.test$test_var$fn__7670.invoke (test.clj:704)
        clojure.test$test_var.invoke (test.clj:704)
        clojure.test$test_vars$fn__7692$fn__7697.invoke (test.clj:722)
        clojure.test$default_fixture.invoke (test.clj:674)
        clojure.test$test_vars$fn__7692.invoke (test.clj:722)
        clojure.test$default_fixture.invoke (test.clj:674)
        clojure.test$test_vars.invoke (test.clj:718)
        clojure.test$test_all_vars.invoke (test.clj:728)
        clojure.test$test_ns.invoke (test.clj:747)
        clojure.core$map$fn__4553.invoke (core.clj:2624)
        clojure.lang.LazySeq.sval (LazySeq.java:40)
        clojure.lang.LazySeq.seq (LazySeq.java:49)
        clojure.lang.Cons.next (Cons.java:39)
        clojure.lang.RT.boundedLength (RT.java:1735)
        clojure.lang.RestFn.applyTo (RestFn.java:130)
        clojure.core$apply.invoke (core.clj:632)
        clojure.test$run_tests.doInvoke (test.clj:762)
        clojure.lang.RestFn.invoke (RestFn.java:408)
        
org.apache.storm.testrunner$eval8790$iter__8791__8795$fn__8796$fn__8797$fn__8798.invoke
 (test_runner.clj:107)
        
org.apache.storm.testrunner$eval8790$iter__8791__8795$fn__8796$fn__8797.invoke 
(test_runner.clj:53)
        org.apache.storm.testrunner$eval8790$iter__8791__8795$fn__8796.invoke 
(test_runner.clj:52)
        clojure.lang.LazySeq.sval (LazySeq.java:40)
        clojure.lang.LazySeq.seq (LazySeq.java:49)
        clojure.lang.RT.seq (RT.java:507)
        clojure.core/seq (core.clj:137)
        clojure.core$dorun.invoke (core.clj:3009)
        org.apache.storm.testrunner$eval8790.invoke (test_runner.clj:52)
        clojure.lang.Compiler.eval (Compiler.java:6782)
        clojure.lang.Compiler.load (Compiler.java:7227)
        clojure.lang.Compiler.loadFile (Compiler.java:7165)
        clojure.main$load_script.invoke (main.clj:275)
        clojure.main$script_opt.invoke (main.clj:337)
        clojure.main$main.doInvoke (main.clj:421)
        clojure.lang.RestFn.invoke (RestFn.java:421)
        clojure.lang.Var.invoke (Var.java:383)
        clojure.lang.AFn.applyToHelper (AFn.java:156)
        clojure.lang.Var.applyTo (Var.java:700)
        clojure.main.main (main.java:37)
    
          at: test_runner.clj:105</error>
            </testcase>
    ```



> Running local clusters without simulating time breaks 
> Testing.completeTopology, and may cause message loss
> ----------------------------------------------------------------------------------------------------------
>
>                 Key: STORM-1837
>                 URL: https://issues.apache.org/jira/browse/STORM-1837
>             Project: Apache Storm
>          Issue Type: Bug
>    Affects Versions: 1.0.0, 2.0.0, 1.0.1
>            Reporter: Stig Rohde Døssing
>            Priority: Minor
>
> Since https://github.com/apache/storm/pull/810 it is no longer possible to 
> call Testing.completeTopology when time is not simulating, because a call to 
> advance-cluster-time is made from the function, which calls Time/advanceTime. 
> advance-cluster-time should only be called if time is simulating.
> Since https://github.com/apache/storm/pull/830 a local cluster run without 
> time simulation may lose messages. When a worker emits messages for a worker 
> that hasn't started yet, the message is lost. This can happen because spouts 
> may start emitting before all workers have started, when time simulation is 
> disabled. Local clusters usually run without message timeouts, so this will 
> make tests relying on Testing.withLocalCluster flaky.
> The problem is that there are no longer any queues to store messages for 
> workers that haven't started yet. See 
> https://github.com/apache/storm/pull/830/files#diff-c6ff4208ef84c7a5a1a6b8b6bd1f7d19R104.
>  A queue should be added for messages for workers that haven't registered a 
> receive callback yet.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to