diff --git a/heron/instance/src/java/com/twitter/heron/network/StreamManagerClient.java b/heron/instance/src/java/com/twitter/heron/network/StreamManagerClient.java index 3072be1ba85..478792d44ad 100644 --- a/heron/instance/src/java/com/twitter/heron/network/StreamManagerClient.java +++ b/heron/instance/src/java/com/twitter/heron/network/StreamManagerClient.java @@ -288,6 +288,7 @@ private void handleNewTuples2(HeronTuples.HeronTupleSet2 set) { } HeronTuples.HeronTupleSet s = toFeed.build(); + LOG.info(s.toString()); inStreamQueue.offer(s); } diff --git a/heron/stmgr/src/cpp/manager/stmgr-server.cpp b/heron/stmgr/src/cpp/manager/stmgr-server.cpp index fced037edd0..447a0d8eb11 100644 --- a/heron/stmgr/src/cpp/manager/stmgr-server.cpp +++ b/heron/stmgr/src/cpp/manager/stmgr-server.cpp @@ -358,6 +358,8 @@ void StMgrServer::HandleTupleSetMessage(Connection* _conn, ->incr_by(_message->control().fails_size()); } stmgr_->HandleInstanceData(iter->second, instance_info_[iter->second]->local_spout_, _message); + LOG(INFO) << "Dumping tuple!" << std::endl; + LOG(INFO) << _message->DebugString() << std::endl; release(_message); } diff --git a/integration-test/src/java/com/twitter/heron/integration_test/topology/multi_spouts_multi_tasks/MultiSpoutsMultiTasks.java b/integration-test/src/java/com/twitter/heron/integration_test/topology/multi_spouts_multi_tasks/MultiSpoutsMultiTasks.java index feebc4193b2..733f6d88440 100644 --- a/integration-test/src/java/com/twitter/heron/integration_test/topology/multi_spouts_multi_tasks/MultiSpoutsMultiTasks.java +++ b/integration-test/src/java/com/twitter/heron/integration_test/topology/multi_spouts_multi_tasks/MultiSpoutsMultiTasks.java @@ -32,8 +32,8 @@ private MultiSpoutsMultiTasks(String[] args) throws MalformedURLException { @Override protected TestTopologyBuilder buildTopology(TestTopologyBuilder builder) { - builder.setSpout("ab-spout-1", new ABSpout(), 3); - builder.setSpout("ab-spout-2", new ABSpout(), 3); + builder.setSpout("ab-spout-1", new ABSpout(true), 3); + builder.setSpout("ab-spout-2", new ABSpout(true), 3); builder.setBolt("identity-bolt", new IdentityBolt(new Fields("word")), 1) .shuffleGrouping("ab-spout-1") .shuffleGrouping("ab-spout-2"); diff --git a/integration-test/src/java/com/twitter/heron/integration_test/topology/multi_spouts_multi_tasks/resources/MultiSpoutsMultiTasks.json b/integration-test/src/java/com/twitter/heron/integration_test/topology/multi_spouts_multi_tasks/resources/MultiSpoutsMultiTasks.json index 5b9de292633..0ce24647b12 100644 --- a/integration-test/src/java/com/twitter/heron/integration_test/topology/multi_spouts_multi_tasks/resources/MultiSpoutsMultiTasks.json +++ b/integration-test/src/java/com/twitter/heron/integration_test/topology/multi_spouts_multi_tasks/resources/MultiSpoutsMultiTasks.json @@ -1 +1 @@ -["A", "B", "A", "B", "A", "B", "A", "B", "A", "B","A", "B", "A", "B", "A", "B", "A", "B", "A", "B","A", "B", "A", "B", "B", "A", "A", "A", "B", "B","A", "B", "A", "B", "A", "B", "A", "B", "A", "B","A", "B", "A", "B", "A", "B", "A", "B", "A", "B","A", "B", "A", "B", "B", "A", "A", "A", "B", "B"] \ No newline at end of file +["A_0", "A_0", "A_0", "A_0", "A_0", "A_0", "A_2", "A_2", "A_2", "A_2", "A_2", "A_2", "A_4", "A_4", "A_4", "A_4", "A_4", "A_4", "A_6", "A_6", "A_6", "A_6", "A_6", "A_6", "A_8", "A_8", "A_8", "A_8", "A_8", "A_8", "B_1", "B_1", "B_1", "B_1", "B_1", "B_1", "B_3", "B_3", "B_3", "B_3", "B_3", "B_3", "B_5", "B_5", "B_5", "B_5", "B_5", "B_5", "B_7", "B_7", "B_7", "B_7", "B_7", "B_7", "B_9", "B_9", "B_9", "B_9", "B_9", "B_9"] \ No newline at end of file diff --git a/scripts/travis/build.sh b/scripts/travis/build.sh index db89a4c63b7..d1261d24f16 100755 --- a/scripts/travis/build.sh +++ b/scripts/travis/build.sh @@ -4,8 +4,6 @@ # of the below commands fail so we need to chain them in this script. # -set -e - DIR=`dirname $0` source ${DIR}/common.sh @@ -62,25 +60,6 @@ python ${DIR}/save-logs.py "heron_build.txt" bazel\ --bazelrc=tools/travis-ci/bazel.rc build --config=ubuntu heron/... end_timer "$T" -# run heron unit tests -T="heron test non-flaky" -start_timer "$T" -python ${DIR}/save-logs.py "heron_test_non_flaky.txt" bazel\ - --bazelrc=tools/travis-ci/bazel.rc test\ - --test_summary=detailed --test_output=errors\ - --config=ubuntu --test_tag_filters=-flaky heron/... -end_timer "$T" - -# flaky tests are often due to test port race conditions, -# which should be fixed. For now, run them serially -T="heron test flaky" -start_timer "$T" -python ${DIR}/save-logs.py "heron_test_flaky.txt" bazel\ - --bazelrc=tools/travis-ci/bazel.rc test\ - --test_summary=detailed --test_output=errors\ - --config=ubuntu --test_tag_filters=flaky --jobs=0 heron/... -end_timer "$T" - # build packages T="heron build tarpkgs" start_timer "$T" diff --git a/scripts/travis/ci.sh b/scripts/travis/ci.sh index 7ee1d177660..9160f09b604 100755 --- a/scripts/travis/ci.sh +++ b/scripts/travis/ci.sh @@ -1,7 +1,5 @@ #!/bin/bash -set -e - DIR=`dirname $0` source ${DIR}/common.sh diff --git a/scripts/travis/common.sh b/scripts/travis/common.sh index 6daa3f13c01..a156748ded3 100755 --- a/scripts/travis/common.sh +++ b/scripts/travis/common.sh @@ -1,7 +1,5 @@ #!/bin/bash -set -e - function die { echo "ERROR: $1" && exit 1; } diff --git a/scripts/travis/test.sh b/scripts/travis/test.sh index 1fccb073ae1..1bf5292bc08 100755 --- a/scripts/travis/test.sh +++ b/scripts/travis/test.sh @@ -2,7 +2,6 @@ # # Script to kick off the travis CI integration test. Fail-fast if any of tthe below commands fail. # -set -e DIR=`dirname $0` source ${DIR}/common.sh @@ -12,51 +11,42 @@ JAVA_INTEGRATION_TESTS_BIN="${PWD}/bazel-genfiles/integration-test/src/java/inte PYTHON_INTEGRATION_TESTS_BIN="${PWD}/bazel-bin/integration-test/src/python/integration_test/topology/pyheron_integ_topology.pex" # build test related jar -T="heron build integration-test" -start_timer "$T" python ${DIR}/save-logs.py "heron_build_integration_test.txt" bazel --bazelrc=tools/travis-ci/bazel.rc build --config=ubuntu integration-test/src/... -end_timer "$T" # install client -T="heron client install" -start_timer "$T" python ${DIR}/save-logs.py "heron_client_install.txt" bazel --bazelrc=tools/travis-ci/bazel.rc run --config=ubuntu -- scripts/packages:heron-client-install.sh --user -end_timer "$T" # install tools -T="heron tools install" -start_timer "$T" python ${DIR}/save-logs.py "heron_tools_install.txt" bazel --bazelrc=tools/travis-ci/bazel.rc run --config=ubuntu -- scripts/packages:heron-tools-install.sh --user -end_timer "$T" # run local integration test -T="heron integration-test local" -start_timer "$T" -python ./bazel-bin/integration-test/src/python/local_test_runner/local-test-runner -end_timer "$T" +# T="heron integration-test local" +# start_timer "$T" +# python ./bazel-bin/integration-test/src/python/local_test_runner/local-test-runner +# end_timer "$T" # run the java integration test -T="heron integration-test java" -start_timer "$T" ./bazel-bin/integration-test/src/python/http_server/http-server 8080 & http_server_id=$! trap "kill -9 $http_server_id" SIGINT SIGTERM EXIT -./bazel-bin/integration-test/src/python/test_runner/test-runner.pex \ - -hc heron -tb ${JAVA_INTEGRATION_TESTS_BIN} \ - -rh localhost -rp 8080\ - -tp integration-test/src/java/com/twitter/heron/integration_test/topology/ \ - -cl local -rl heron-staging -ev devel -end_timer "$T" - -# run the python integration test -T="heron integration-test python" -start_timer "$T" -./bazel-bin/integration-test/src/python/test_runner/test-runner.pex \ - -hc heron -tb ${PYTHON_INTEGRATION_TESTS_BIN} \ - -rh localhost -rp 8080\ - -tp integration-test/src/python/integration_test/topology/ \ - -cl local -rl heron-staging -ev devel -end_timer "$T" - -print_timer_summary +# Run MultiSpoutsMultiTasks +for i in `seq 1 100`; do + rm -rf ~/.herondata + ./bazel-bin/integration-test/src/python/test_runner/test-runner.pex \ + -hc heron -tb ${JAVA_INTEGRATION_TESTS_BIN} \ + -rh localhost -rp 8080\ + -tp integration-test/src/java/com/twitter/heron/integration_test/topology/ \ + -cl local -rl heron-staging -ev devel \ + -ts 'IntegrationTest_MultiSpoutsMultiTasks' + RESULT=$? + if [ $RESULT -ne 0 ]; then + # Dump out stream manager log + echo "DUMPING STMGR LOG" + tail -n +1 ~/.herondata/topologies/local/*/*MultiSpoutsMultiTasks*/log-files/*stmgr*.INFO + # Dump out Java program's logs + echo "DUMPING JAVA PROGRAM LOG" + tail -n +1 ~/.herondata/topologies/local/*/*MultiSpoutsMultiTasks*/log-files/container*.log.0 + exit 1 + fi +done