[ https://issues.apache.org/jira/browse/APEXMALHAR-2120?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15340463#comment-15340463 ]
ASF GitHub Bot commented on APEXMALHAR-2120: -------------------------------------------- Github user brightchen commented on a diff in the pull request: https://github.com/apache/apex-malhar/pull/321#discussion_r67772302 --- Diff: kafka/pom.xml --- @@ -198,7 +198,7 @@ <dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka_2.11</artifactId> - <version>0.9.0.0</version> --- End diff -- 0.9.0.1 fixed some bugs, it should be more stable than 0.9.0.0. I think it's better to upgrade before a lot of customers using it. Following is Kafka 0.9.0.1 release notes: http://apache.claz.org/kafka/0.9.0.1/RELEASE_NOTES.html > Fix bugs on KafkaInputOperatorTest AbstractKafkaInputOperator > ------------------------------------------------------------- > > Key: APEXMALHAR-2120 > URL: https://issues.apache.org/jira/browse/APEXMALHAR-2120 > Project: Apache Apex Malhar > Issue Type: Bug > Affects Versions: 3.4.0 > Reporter: bright chen > Assignee: bright chen > Fix For: 3.5.0 > > > problems in Unit Test class: KafkaInputOperatorTest > - 'k' not initialized for each test case > - The assert was not correct > - The test case assume the END_TUPLE will be received at the end of normal > tuples, but in fact the tuples could be out of order where support multiple > cluster or partition > - The operator AbstractKafkaInputOperator implemented as "at least once", but > the test case assume "exactly once" > ==================================================================================================== > problem of AbstractKafkaInputOperator: > -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- > - RuntimeException: Couldn't replay the offset: > For test case KafkaInputOperatorTest.testIdempotentInputOperatorWithFailure() > with senario > {true, true, "one_to_many"} > ("multi-cluster: true, multi-partition: true, partition: "one_to_many") > throws following exception and the Collector Module didn't collect any data. > 2016-06-15 10:43:56,358 [1/Kafka > inputtesttopic0:KafkaSinglePortInputOperator] INFO stram.StramLocalCluster > log - container-6 msg: Stopped running due to an exception. > java.lang.RuntimeException: Couldn't replay the offset > at > org.apache.apex.malhar.kafka.KafkaConsumerWrapper.emitImmediately(KafkaConsumerWrapper.java:146) > at > org.apache.apex.malhar.kafka.AbstractKafkaInputOperator.replay(AbstractKafkaInputOperator.java:261) > at > org.apache.apex.malhar.kafka.AbstractKafkaInputOperator.beginWindow(AbstractKafkaInputOperator.java:250) > at com.datatorrent.stram.engine.InputNode.run(InputNode.java:122) > at > com.datatorrent.stram.engine.StreamingContainer$2.run(StreamingContainer.java:1407) > Caused by: org.apache.kafka.clients.consumer.NoOffsetForPartitionException: > Undefined offset with no reset policy for partition: testtopic0-1 > at > org.apache.kafka.clients.consumer.internals.Fetcher.resetOffset(Fetcher.java:288) > at > org.apache.kafka.clients.consumer.internals.Fetcher.updateFetchPositions(Fetcher.java:167) > at > org.apache.kafka.clients.consumer.KafkaConsumer.updateFetchPositions(KafkaConsumer.java:1302) > at > org.apache.kafka.clients.consumer.KafkaConsumer.pollOnce(KafkaConsumer.java:895) > ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ > - ConcurrentModificationException > 2016-06-16 10:14:32,400 [1/Kafka > inputtesttopic4:KafkaSinglePortInputOperator] ERROR engine.StreamingContainer > run - Shutdown of operator OperatorDeployInfo[id=1,name=Kafka > inputtesttopic4,type=INPUT,checkpoint={ffffffffffffffff, 0, > 0},inputs=[],outputs=[OperatorDeployInfo.OutputDeployInfo[portName=outputPort,streamId=Kafka > messagetesttopic4,bufferServer=MacBook-Pro-2.local]]] failed due to an > exception. > java.util.ConcurrentModificationException: KafkaConsumer is not safe for > multi-threaded access > at > org.apache.kafka.clients.consumer.KafkaConsumer.acquire(KafkaConsumer.java:1324) > at > org.apache.kafka.clients.consumer.KafkaConsumer.close(KafkaConsumer.java:1255) > at > org.apache.apex.malhar.kafka.KafkaConsumerWrapper.stop(KafkaConsumerWrapper.java:340) > at > org.apache.apex.malhar.kafka.AbstractKafkaInputOperator.deactivate(AbstractKafkaInputOperator.java:184) > at com.datatorrent.stram.engine.Node.deactivate(Node.java:646) > at > com.datatorrent.stram.engine.StreamingContainer.teardownNode(StreamingContainer.java:1347) > at > com.datatorrent.stram.engine.StreamingContainer.access$500(StreamingContainer.java:130) > at > com.datatorrent.stram.engine.StreamingContainer$2.run(StreamingContainer.java:1438) > 2016-06-16 10:14:32,400 [2/Kafka > inputtesttopic4:KafkaSinglePortInputOperator] ERROR engine.StreamingContainer > run - Shutdown of operator OperatorDeployInfo[id=2,name=Kafka > inputtesttopic4,type=INPUT,checkpoint={ffffffffffffffff, 0, > 0},inputs=[],outputs=[OperatorDeployInfo.OutputDeployInfo[portName=outputPort,streamId=Kafka > messagetesttopic4,bufferServer=MacBook-Pro-2.local]]] failed due to an > exception. > java.util.ConcurrentModificationException: KafkaConsumer is not safe for > multi-threaded access > at > org.apache.kafka.clients.consumer.KafkaConsumer.acquire(KafkaConsumer.java:1324) > at > org.apache.kafka.clients.consumer.KafkaConsumer.close(KafkaConsumer.java:1255) > at > org.apache.apex.malhar.kafka.KafkaConsumerWrapper.stop(KafkaConsumerWrapper.java:340) > at > org.apache.apex.malhar.kafka.AbstractKafkaInputOperator.deactivate(AbstractKafkaInputOperator.java:184) > at com.datatorrent.stram.engine.Node.deactivate(Node.java:646) > at > com.datatorrent.stram.engine.StreamingContainer.teardownNode(StreamingContainer.java:1347) > at > com.datatorrent.stram.engine.StreamingContainer.access$500(StreamingContainer.java:130) > at > com.datatorrent.stram.engine.StreamingContainer$2.run(StreamingContainer.java:1438) -- This message was sent by Atlassian JIRA (v6.3.4#6332)