Github user revans2 commented on a diff in the pull request:

    https://github.com/apache/storm/pull/2507#discussion_r160259977
  
    --- Diff: 
storm-server/src/test/java/org/apache/storm/nimbus/LocalNimbusTest.java ---
    @@ -32,42 +37,35 @@
     import org.junit.Assert;
     import org.junit.Test;
     
    -import java.util.ArrayList;
    -import java.util.HashMap;
    -import java.util.List;
    -import java.util.Map;
    -import java.util.Random;
    -import java.util.UUID;
    -
     /**
      * Tests local cluster with nimbus and a plugin for {@link 
Config#STORM_TOPOLOGY_SUBMISSION_NOTIFIER_PLUGIN}.
      */
     public class LocalNimbusTest {
     
         @Test
         public void testSubmitTopologyToLocalNimbus() throws Exception {
    -
    -        HashMap<String,Object> localClusterConf = new HashMap<>();
    -        localClusterConf.put("nimbus-daemon", true);
    -        ILocalCluster localCluster = 
Testing.getLocalCluster(localClusterConf);
    -
    -        Config topoConf = new Config();
    -        topoConf.putAll(Utils.readDefaultConfig());
    -        topoConf.setDebug(true);
    -        topoConf.put("storm.cluster.mode", "local"); // default is aways 
"distributed" but here local cluster is being used.
    -        topoConf.put(Config.STORM_TOPOLOGY_SUBMISSION_NOTIFIER_PLUGIN, 
InmemoryTopologySubmitterHook.class.getName());
    -
    -        List<TopologyDetails> topologyNames =new ArrayList<>();
    -        for (int i=0; i<4; i++) {
    -            final String topologyName = "word-count-"+ 
UUID.randomUUID().toString();
    -            final StormTopology stormTopology = createTestTopology();
    -            topologyNames.add(new TopologyDetails(topologyName, 
stormTopology));
    -            localCluster.submitTopology(topologyName, topoConf, 
stormTopology);
    +        int port = Utils.getAvailablePort();
    --- End diff --
    
    Yes it is racy.
    
    We have done it this way for other ports without too many issues.  The 
problem is that it would require a feedback path for the port from Nimbus, and 
possibly a few updates in other places that try to read the port out of the 
config.  If you really want to see this changed I can file a follow on JIRA and 
look into it, as it would not likely be that much work.


---

Reply via email to