aws-sdk-java-v2 icon indicating copy to clipboard operation
aws-sdk-java-v2 copied to clipboard

Connector completed: success = 'false', message = 'Stopping connector after error in the application's handler method: Unable to marshall request to JSON: baseUri must not be null.', error = '{}': software.amazon.awssdk.core.exception.SdkClientException: Unable to marshall request to JSON: baseUri must not be null.(short issue description)

Open suryaares opened this issue 3 years ago • 2 comments

Describe the bug

while streaming data from mysql server to kinesis data stream through debezium server showing some error. mysql server and debezium server are in two different ec2 instances.which are in same region and kinesis also in same region and same account...

Expected Behavior

debezium server should stream data from mysql server to kinesis data stream.

Current Behavior

INFO [io.deb.ser.ConnectorLifecycle] (pool-7-thread-1) Connector completed: success = 'false', message = 'Stopping connector after error in the application's handler method: Unable to marshall request to JSON: baseUri must not be null.', error = '{}': software.amazon.awssdk.core.exception.SdkClientException: Unable to marshall request to JSON: baseUri must not be null. at software.amazon.awssdk.core.exception.SdkClientException$BuilderImpl.build(SdkClientException.java:98) at software.amazon.awssdk.services.kinesis.transform.PutRecordRequestMarshaller.marshall(PutRecordRequestMarshaller.java:52) at software.amazon.awssdk.services.kinesis.transform.PutRecordRequestMarshaller.marshall(PutRecordRequestMarshaller.java:31) at software.amazon.awssdk.core.internal.handler.BaseClientHandler.lambda$finalizeSdkHttpFullRequest$0(BaseClientHandler.java:79) at software.amazon.awssdk.core.internal.util.MetricUtils.measureDuration(MetricUtils.java:51) at software.amazon.awssdk.core.internal.handler.BaseClientHandler.finalizeSdkHttpFullRequest(BaseClientHandler.java:78) at software.amazon.awssdk.core.internal.handler.BaseSyncClientHandler.doExecute(BaseSyncClientHandler.java:145) at software.amazon.awssdk.core.internal.handler.BaseSyncClientHandler.lambda$execute$1(BaseSyncClientHandler.java:114) at software.amazon.awssdk.core.internal.handler.BaseSyncClientHandler.measureApiCallSuccess(BaseSyncClientHandler.java:169) at software.amazon.awssdk.core.internal.handler.BaseSyncClientHandler.execute(BaseSyncClientHandler.java:95) at software.amazon.awssdk.core.client.handler.SdkSyncClientHandler.execute(SdkSyncClientHandler.java:45) at software.amazon.awssdk.awscore.client.handler.AwsSyncClientHandler.execute(AwsSyncClientHandler.java:55) at software.amazon.awssdk.services.kinesis.DefaultKinesisClient.putRecord(DefaultKinesisClient.java:1562) at io.debezium.server.kinesis.KinesisChangeConsumer.handleBatch(KinesisChangeConsumer.java:108) at io.debezium.embedded.ConvertingEngineBuilder.lambda$notifying$2(ConvertingEngineBuilder.java:83) at io.debezium.embedded.EmbeddedEngine.run(EmbeddedEngine.java:821) at io.debezium.embedded.ConvertingEngineBuilder$2.run(ConvertingEngineBuilder.java:188) at io.debezium.server.DebeziumServer.lambda$start$1(DebeziumServer.java:145) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:829) Caused by: java.lang.NullPointerException: baseUri must not be null. at software.amazon.awssdk.utils.Validate.paramNotNull(Validate.java:135) at software.amazon.awssdk.utils.http.SdkHttpUtils.appendUri(SdkHttpUtils.java:261) at software.amazon.awssdk.http.SdkHttpFullRequest$Builder.uri(SdkHttpFullRequest.java:71) at software.amazon.awssdk.protocols.core.ProtocolUtils.createSdkHttpRequest(ProtocolUtils.java:44) at software.amazon.awssdk.protocols.json.internal.marshall.JsonProtocolMarshaller.fillBasicRequestParams(JsonProtocolMarshaller.java:148) at software.amazon.awssdk.protocols.json.internal.marshall.JsonProtocolMarshaller.(JsonProtocolMarshaller.java:77) at software.amazon.awssdk.protocols.json.internal.marshall.JsonProtocolMarshallerBuilder.build(JsonProtocolMarshallerBuilder.java:100) at software.amazon.awssdk.protocols.json.BaseAwsJsonProtocolFactory.createProtocolMarshaller(BaseAwsJsonProtocolFactory.java:185) at software.amazon.awssdk.services.kinesis.transform.PutRecordRequestMarshaller.marshall(PutRecordRequestMarshaller.java:49) ... 19 more

2022-08-08 13:32:03,054 INFO [io.deb.ser.DebeziumServer] (main) Received request to stop the engine 2022-08-08 13:32:03,055 INFO [io.deb.emb.EmbeddedEngine] (main) Stopping the embedded engine 2022-08-08 13:32:03,088 INFO [io.quarkus] (main) debezium-server-dist stopped in 0.048s

Reproduction Steps

config file which is used in debezium server for streaming data from mysql server to kinesis data stream.. debezium.sink.type=kinesis debezium.sink.kinesis.region=us-east-2 debezium.sink.kinesis.endpoint=arn:aws:kinesis:us-east-2:561761662:stream/deb_kinesis debezium.source.connector.class=io.debezium.connector.mysql.MySqlConnector debezium.source.offset.storage.file.filename=/tmp/offsets.dat debezium.source.offset.flush.interval.ms=0 debezium.source.database.hostname=3.19.20.64 debezium.source.database.port=3306 debezium.source.database.user=root debezium.source.database.password=password debezium.source.database.dbname=incdb debezium.source.database.server.id=1 debezium.source.database.server.name=kafka_inc_sql_server debezium.source.include.query=true debezium.source.snapshot.mode=when_needed debezium.sink.pravega.scope=empty debezium.source.table.include.list=incdb.Orders debezium.source.database.history.file.filename=/tmp/FileDatabaseHistory.dat debezium.source.database.history=io.debezium.relational.history.FileDatabaseHistory

Possible Solution

No response

Additional Information/Context

No response

AWS Java SDK version used

aws-cli/1.25.44 Python/3.10.4 Linux/5.15.0-1015-aws botocore/1.27.44

JDK version used

openjdk 11.0.15 2022-04-19 OpenJDK Runtime Environment (build 11.0.15+10-Ubuntu-0ubuntu0.22.04.1) OpenJDK 64-Bit Server VM (build 11.0.15+10-Ubuntu-0ubuntu0.22.04.1, mixed mode, sharing)

Operating System and version

Ubuntu 22.04 LTS (GNU/Linux 5.15.0-1015-aws x86_64)

suryaares avatar Aug 08 '22 13:08 suryaares

Hello @suryaares ,

Thank you very much for your message. The error you are encountering is thrown when the service could not be contacted for a response, or when the client is unable to parse the response from service. I would need more information on your usage of the SDK to help with this issue. Could you please provide your full code sample?

Best,

Yasmine

yasminetalby avatar Aug 09 '22 16:08 yasminetalby

I am not using any code here. Mysql server on separate instance and debezium server on another one instance..just using config file, i am trying to connect these source and kinesis as destination..Kinesis also in the same aws acc where the debezium server instance in running..

Here you can see that config file..

debezium.sink.type=kinesis debezium.sink.kinesis.region=us-east-2 debezium.sink.kinesis.endpoint=arn:aws:kinesis:us-east-2:561761662:stream/deb_kinesis debezium.source.connector.class=io.debezium.connector.mysql.MySqlConnector debezium.source.offset.storage.file.filename=/tmp/offsets.dat debezium.source.offset.flush.interval.ms=0 debezium.source.database.hostname=3.19.20.64 debezium.source.database.port=3306 debezium.source.database.user=root debezium.source.database.password=password debezium.source.database.dbname=incdb debezium.source.database.server.id=1 debezium.source.database.server.name=kafka_inc_sql_server debezium.source.include.query=true debezium.source.snapshot.mode=when_needed debezium.sink.pravega.scope=empty debezium.source.table.include.list=incdb.Orders debezium.source.database.history.file.filename=/tmp/FileDatabaseHistory.dat debezium.source.database.history=io.debezium.relational.history.FileDatabaseHistory

suryaares avatar Aug 10 '22 03:08 suryaares

Hello @suryaares ,

Thank you very much for your reply. Based on the information you have provided, you would need to reach out to the Debezium support team for guidance or troubleshooting with this issue.

Best,

Yasmine

yasminetalby avatar Aug 11 '22 20:08 yasminetalby

⚠️COMMENT VISIBILITY WARNING⚠️

Comments on closed issues are hard for our team to see. If you need more assistance, please open a new issue that references this one. If you wish to keep having a conversation with other community members under this issue feel free to do so.

github-actions[bot] avatar Aug 11 '22 20:08 github-actions[bot]

I will leave response-requested status in case you need any guidance on the AWS Java SDK but it seems that you are encountering issue with the use of debezium server which is a third party service. They do offer guidance documentation on streaming MySQL Data to Amazon Kinesis that could be useful in your case.

Best,

Yasmine

yasminetalby avatar Aug 11 '22 20:08 yasminetalby

I will leave response-requested status in case you need any guidance on the AWS Java SDK but it seems that you are encountering issue with the use of debezium server which is a third party service. They do offer guidance documentation on streaming MySQL Data to Amazon Kinesis that could be useful in your case.

Best,

Yasmine

yeah thank you so much....

suryaares avatar Aug 12 '22 02:08 suryaares

⚠️COMMENT VISIBILITY WARNING⚠️

Comments on closed issues are hard for our team to see. If you need more assistance, please open a new issue that references this one. If you wish to keep having a conversation with other community members under this issue feel free to do so.

github-actions[bot] avatar Aug 12 '22 21:08 github-actions[bot]