spark-instrumented-optimizer/dev/sparktestsupport
Shixiong Zhu 95efc895e9 [SPARK-18588][SS][KAFKA] Create a new KafkaConsumer when error happens to fix the flaky test
## What changes were proposed in this pull request?

When KafkaSource fails on Kafka errors, we should create a new consumer to retry rather than using the existing broken one because it's possible that the broken one will fail again.

This PR also assigns a new group id to the new created consumer for a possible race condition:  the broken consumer cannot talk with the Kafka cluster in `close` but the new consumer can talk to Kafka cluster. I'm not sure if this will happen or not. Just for safety to avoid that the Kafka cluster thinks there are two consumers with the same group id in a short time window. (Note: CachedKafkaConsumer doesn't need this fix since `assign` never uses the group id.)

## How was this patch tested?

In https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder/70370/console , it ran this flaky test 120 times and all passed.

Author: Shixiong Zhu <shixiong@databricks.com>

Closes #16282 from zsxwing/kafka-fix.
2016-12-21 15:39:36 -08:00
..
__init__.py [SPARK-1267][SPARK-18129] Allow PySpark to be pip installed 2016-11-16 14:22:15 -08:00
modules.py [SPARK-18588][SS][KAFKA] Create a new KafkaConsumer when error happens to fix the flaky test 2016-12-21 15:39:36 -08:00
shellutils.py [SPARK-15975] Fix improper Popen retcode code handling in dev/run-tests 2016-06-16 14:18:58 -07:00
toposort.py [SPARK-8725][PROJECT-INFRA] Test modules in topologically-sorted order in dev/run-tests 2016-01-26 14:20:11 -08:00