Vijay Bang created STORM-3547:
---------------------------------

             Summary: KinesisSpout incorrectly handles closed shards
                 Key: STORM-3547
                 URL: https://issues.apache.org/jira/browse/STORM-3547
             Project: Apache Storm
          Issue Type: Bug
          Components: storm-kinesis
    Affects Versions: 2.1.0
            Reporter: Vijay Bang


The KinesisSpout throws an exception when consuming closed Kinesis shards, 
which return null from `GetShardIterator`, as it tries to call `GetRecords` 
with the null `shardIterator` value instead of abandoning the closed shard.

This means KinesisSpout fails after re-sharding a stream with an exception like 
the following:

 
{code:java}
java.lang.RuntimeException: 
com.amazonaws.services.kinesis.model.AmazonKinesisException: 1 validation error 
detected: Value null at 'shardIterator' failed to satisfy constraint: Member 
must not be null (S ervice: AmazonKinesis; Status Code: 400; Error Code: 
ValidationException; Request ID: d85076a4-3953-fb6e-8e08-331e7d91ef0f) at 
org.apache.storm.utils.Utils$1.run(Utils.java:407) 
~[storm-client-2.1.0.jar:2.1.0] at java.lang.Thread.run(Thread.java:745) 
[?:1.8.0_101] Caused by: 
com.amazonaws.services.kinesis.model.AmazonKinesisException: 1 validation error 
detected: Value null at 'shardIterator' failed to satisfy constraint: Member 
must not be null (Service: AmazonKin esis; Status Code: 400; Error Code: 
ValidationException; Request ID: d85076a4-3953-fb6e-8e08-331e7d91ef0f) at 
com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleErrorResponse(AmazonHttpClient.java:1695)
 ~[stormjar.jar:3.4.6-1569965] at 
com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeOneRequest(AmazonHttpClient.java:1350)
 ~[stormjar.jar:3.4.6-1569965] at 
com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeHelper(AmazonHttpClient.java:1101)
 ~[stormjar.jar:3.4.6-1569965] at 
com.amazonaws.http.AmazonHttpClient$RequestExecutor.doExecute(AmazonHttpClient.java:758)
 ~[stormjar.jar:3.4.6-1569965] at 
com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeWithTimer(AmazonHttpClient.java:732)
 ~[stormjar.jar:3.4.6-1569965] at 
com.amazonaws.http.AmazonHttpClient$RequestExecutor.execute(AmazonHttpClient.java:714)
 ~[stormjar.jar:3.4.6-1569965] at 
com.amazonaws.http.AmazonHttpClient$RequestExecutor.access$500(AmazonHttpClient.java:674)
 ~[stormjar.jar:3.4.6-1569965] at 
com.amazonaws.http.AmazonHttpClient$RequestExecutionBuilderImpl.execute(AmazonHttpClient.java:656)
 ~[stormjar.jar:3.4.6-1569965] at 
com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:520) 
~[stormjar.jar:3.4.6-1569965] at 
com.amazonaws.services.kinesis.AmazonKinesisClient.doInvoke(AmazonKinesisClient.java:2803)
 ~[stormjar.jar:3.4.6-1569965] at 
com.amazonaws.services.kinesis.AmazonKinesisClient.invoke(AmazonKinesisClient.java:2772)
 ~[stormjar.jar:3.4.6-1569965] at 
com.amazonaws.services.kinesis.AmazonKinesisClient.invoke(AmazonKinesisClient.java:2761)
 ~[stormjar.jar:3.4.6-1569965] at 
com.amazonaws.services.kinesis.AmazonKinesisClient.executeGetRecords(AmazonKinesisClient.java:1288)
 ~[stormjar.jar:3.4.6-1569965] at 
com.amazonaws.services.kinesis.AmazonKinesisClient.getRecords(AmazonKinesisClient.java:1259)
 ~[stormjar.jar:3.4.6-1569965] at 
org.apache.storm.kinesis.spout.KinesisConnection.fetchRecords(KinesisConnection.java:113)
 ~[stormjar.jar:3.4.6-1569965] at 
org.apache.storm.kinesis.spout.KinesisRecordsManager.fetchNewRecords(KinesisRecordsManager.java:329)
 ~[stormjar.jar:3.4.6-1569965] at 
org.apache.storm.kinesis.spout.KinesisRecordsManager.next(KinesisRecordsManager.java:135)
 ~[stormjar.jar:3.4.6-1569965] at 
org.apache.storm.kinesis.spout.KinesisSpout.nextTuple(KinesisSpout.java:82) 
~[stormjar.jar:3.4.6-1569965] at 
org.apache.storm.executor.spout.SpoutExecutor$2.call(SpoutExecutor.java:192) 
~[storm-client-2.1.0.jar:2.1.0] at 
org.apache.storm.executor.spout.SpoutExecutor$2.call(SpoutExecutor.java:159) 
~[storm-client-2.1.0.jar:2.1.0] at 
org.apache.storm.utils.Utils$1.run(Utils.java:392) 
~[storm-client-2.1.0.jar:2.1.0]
{code}
 

Same Problem was resolved in https://issues.apache.org/jira/browse/BEAM-2582

 

 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to