Search before reporting
Read release policy
User environment
- broker version: 50a31699406a52dfcacd4b5ead09ac5f89e2035d
Issue Description
Debezium Postgres source connector failed to start
Error messages
"commonElementCount": 0,
"localizedMessage": "org.asynchttpclient.DefaultAsyncHttpClient",
"message": "org.asynchttpclient.DefaultAsyncHttpClient",
"name": "java.io.NotSerializableException",
the root stacktrace is here:
{
"class": "org.apache.pulsar.io.debezium.SerDeUtils",
"method": "serialize",
"file": "SerDeUtils.java",
"line": 47,
"exact": false,
"location": "?",
"version": "?"
},
{
"class": "org.apache.pulsar.io.debezium.DebeziumSource",
"method": "open",
"file": "DebeziumSource.java",
"line": 113,
"exact": false,
"location": "?",
"version": "?"
},
and the code is here:
String pulsarClientBuilder = SerDeUtils.serialize(sourceContext.getPulsarClientBuilder());
Reproducing the issue
- start pulsar in standalone mode
- deploy a test PostgreSql instance
- deploy a DebeziumPostgreSql source in the pulsar
Additional information
the root reason is that the all debezium sources will try to serialize ClientBuilder, and which contains a FlowBase object for authentication, but this commit added a protected final AsyncHttpClient httpClient field to the FlowBase class, it makes the ClientBuilder not serializable
we need to make the ClientBuilder serializable again
Are you willing to submit a PR?
Search before reporting
Read release policy
User environment
Issue Description
Debezium Postgres source connector failed to start
Error messages
Reproducing the issue
Additional information
the root reason is that the all debezium sources will try to serialize
ClientBuilder, and which contains aFlowBaseobject for authentication, but this commit added aprotected final AsyncHttpClient httpClient fieldto the FlowBase class, it makes theClientBuildernot serializablewe need to make the ClientBuilder serializable again
Are you willing to submit a PR?