spring-projects/spring-integration-aws

KclMessageDrivenChannelAdapter seems to be stuck "Initializing LeaseCoordinator"

Closed this issue · 1 comments

I am using KclMessageDrivenChannelAdapter . My account has full access to Dynamo,Cloudwatch and kinesis
However my code to initialize 20 times with below error

`
2020-08-31 15:34:00.299 INFO 40460 --- [cTaskExecutor-1] c.a.s.k.clientlibrary.lib.worker.Worker : Initializing LeaseCoordinator

2020-08-31 15:34:10.546 INFO 40460 --- [cTaskExecutor-1] c.a.s.k.clientlibrary.lib.worker.Worker : Initialization attempt 3`

After 20 attempts code prints

`2020-08-31 15:37:16.047 ERROR 40460 --- [cTaskExecutor-1] c.a.s.k.clientlibrary.lib.worker.Worker : Unable to initialize after 20 attempts. Shutting down.

java.lang.RuntimeException: java.lang.NullPointerException
at com.amazonaws.services.kinesis.clientlibrary.lib.worker.Worker.initialize(Worker.java:715) ~[amazon-kinesis-client-1.13.3.jar:na]
at com.amazonaws.services.kinesis.clientlibrary.lib.worker.Worker.run(Worker.java:614) ~[amazon-kinesis-client-1.13.3.jar:na]
at java.base/java.lang.Thread.run(Thread.java:830) ~[na:na]
Caused by: java.lang.NullPointerException: null
at com.amazonaws.services.kinesis.leases.impl.LeaseManager.createLeaseTableIfNotExists(LeaseManager.java:139) ~[amazon-kinesis-client-1.13.3.jar:na]
at com.amazonaws.services.kinesis.clientlibrary.lib.worker.KinesisClientLibLeaseCoordinator.initialize(KinesisClientLibLeaseCoordinator.java:329) ~[amazon-kinesis-client-1.13.3.jar:na]
at com.amazonaws.services.kinesis.clientlibrary.lib.worker.Worker.initialize(Worker.java:674) ~[amazon-kinesis-client-1.13.3.jar:na]
... 2 common frames omitted`

Its not very clear from logs which steps is failing or configuration is missing

Issue happens when we are creating new consumer group and asking spring to create dynamo table. Billing mode is going in as NULL..

KclMessageDrivenChannelAdapter adapter = new KclMessageDrivenChannelAdapter( "stream-name", kinesisClient, amazonCloudWatch, amazonDynamoDB, awsCredentialsProviderChain);

However passing KinesisClientLibConfiguration object resolved the issue