This is an automated email from the ASF dual-hosted git repository.
lesun pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-gobblin.git
The following commit(s) were added to refs/heads/master by this push:
new bc41697 [GOBBLIN-1197] Attempting resolving race condition among
different tests' port allocation
bc41697 is described below
commit bc41697783c4ff0ee3cb6a5ef43b04896aa988a9
Author: Lei Sun <[email protected]>
AuthorDate: Wed Jun 17 12:28:12 2020 -0700
[GOBBLIN-1197] Attempting resolving race condition among different tests'
port allocation
Always execute stopServers in elasticSearchWriter
Attempt to resolve contention among tests for port
allocation
Add some log in failing tests
Closes #3043 from autumnust/master
---
.../elasticsearch/writer/ElasticsearchWriterIntegrationTest.java | 8 +++++---
.../org/apache/gobblin/kafka/writer/Kafka09DataWriterTest.java | 8 ++++++--
.../src/main/java/org/apache/gobblin/test/TestUtils.java | 2 +-
3 files changed, 12 insertions(+), 6 deletions(-)
diff --git
a/gobblin-modules/gobblin-elasticsearch/src/test/java/org/apache/gobblin/elasticsearch/writer/ElasticsearchWriterIntegrationTest.java
b/gobblin-modules/gobblin-elasticsearch/src/test/java/org/apache/gobblin/elasticsearch/writer/ElasticsearchWriterIntegrationTest.java
index 746171c..f5f2950 100644
---
a/gobblin-modules/gobblin-elasticsearch/src/test/java/org/apache/gobblin/elasticsearch/writer/ElasticsearchWriterIntegrationTest.java
+++
b/gobblin-modules/gobblin-elasticsearch/src/test/java/org/apache/gobblin/elasticsearch/writer/ElasticsearchWriterIntegrationTest.java
@@ -62,7 +62,7 @@ public class ElasticsearchWriterIntegrationTest {
recordGenerators = ImmutableList.of(new AvroRecordGenerator(), new
JsonRecordGenerator());
}
- @BeforeSuite
+ @BeforeSuite(alwaysRun=true)
public void startServers()
throws IOException {
log.error("{}: Starting Elasticsearch Server", pid);
@@ -70,10 +70,12 @@ public class ElasticsearchWriterIntegrationTest {
_esTestServer.start(60);
}
- @AfterSuite
+ @AfterSuite(alwaysRun=true)
public void stopServers() {
log.error("{}: Stopping Elasticsearch Server", pid);
- _esTestServer.stop();
+ if (_esTestServer != null ) {
+ _esTestServer.stop();
+ }
}
diff --git
a/gobblin-modules/gobblin-kafka-09/src/test/java/org/apache/gobblin/kafka/writer/Kafka09DataWriterTest.java
b/gobblin-modules/gobblin-kafka-09/src/test/java/org/apache/gobblin/kafka/writer/Kafka09DataWriterTest.java
index e535b63..a6e986a 100644
---
a/gobblin-modules/gobblin-kafka-09/src/test/java/org/apache/gobblin/kafka/writer/Kafka09DataWriterTest.java
+++
b/gobblin-modules/gobblin-kafka-09/src/test/java/org/apache/gobblin/kafka/writer/Kafka09DataWriterTest.java
@@ -60,14 +60,14 @@ public class Kafka09DataWriterTest {
_kafkaTestHelper = new KafkaTestBase();
}
- @BeforeSuite
+ @BeforeSuite(alwaysRun = true)
public void beforeSuite() {
log.warn("Process id = " + ManagementFactory.getRuntimeMXBean().getName());
_kafkaTestHelper.startServers();
}
- @AfterSuite
+ @AfterSuite(alwaysRun = true)
public void afterSuite()
throws IOException {
try {
@@ -161,10 +161,14 @@ public class Kafka09DataWriterTest {
kafka09DataWriter.close();
}
+ log.info("Kafka events written");
+
verify(callback, times(1)).onSuccess(isA(WriteResponse.class));
verify(callback, never()).onFailure(isA(Exception.class));
byte[] message =
_kafkaTestHelper.getIteratorForTopic(topic).next().message();
+
+ log.info("Kafka events read, start to check result... ");
ConfigDrivenMd5SchemaRegistry schemaReg = new
ConfigDrivenMd5SchemaRegistry(topic, record.getSchema());
LiAvroDeserializer deser = new LiAvroDeserializer(schemaReg);
GenericRecord receivedRecord = deser.deserialize(topic, message);
diff --git
a/gobblin-test-utils/src/main/java/org/apache/gobblin/test/TestUtils.java
b/gobblin-test-utils/src/main/java/org/apache/gobblin/test/TestUtils.java
index 68c79e9..ff560ba 100644
--- a/gobblin-test-utils/src/main/java/org/apache/gobblin/test/TestUtils.java
+++ b/gobblin-test-utils/src/main/java/org/apache/gobblin/test/TestUtils.java
@@ -97,7 +97,7 @@ public class TestUtils {
* @return a free port number on localhost
* @throws IllegalStateException if unable to find a free port
*/
- public static int findFreePort() {
+ public synchronized static int findFreePort() {
ServerSocket socket = null;
try {
socket = new ServerSocket(0);