SEPURI-SAI-KRISHNA commented on issue #12405:
URL: https://github.com/apache/seatunnel/issues/12405#issuecomment-5748103671

   Thanks for the report, @zixiao144. This reproduces from the code alone, with 
no broker needed, so I have opened #12406 with a fix. If you would rather 
submit it yourself, say so and I will close mine.
   
   **Root cause.** `MqttSource` is a `SeaTunnelSource`, and `SeaTunnelSource` 
extends `Serializable` (`SeaTunnelSource.java:39`). It holds its configuration 
as a field:
   
   ```java
   public class MqttSource extends AbstractSingleSplitSource<SeaTunnelRow> {
       private final MqttSourceConfig sourceConfig;   // MqttSource.java:38
   ```
   
   but the configuration class does not implement `Serializable`:
   
   ```java
   public class MqttSourceConfig {                    // 
MqttSourceConfig.java:24
   ```
   
   So Zeta cannot serialize the logical DAG, and Hazelcast reports that as the 
`LogicalVertex` failure you saw. Serializing an `MqttSource` on current `dev` 
(`5f7f5c1d`) fails with:
   
   ```
   java.io.NotSerializableException:
       org.apache.seatunnel.connectors.seatunnel.mqtt.source.MqttSourceConfig
   ```
   
   Every field of that class is a `String`, `int` or `boolean`, so nothing 
about its contents is the problem. Only the class declaration is missing, and 
adding `implements Serializable` is enough.
   
   **The JDBC sink is not involved.** I checked the MQTT sink as well: it holds 
`ReadonlyConfig`, `SeaTunnelRowType` and `CatalogTable`, all already 
serializable, and round-trips fine. Only the source path is broken, so the same 
failure should occur with any sink, not just Jdbc.
   
   **Why it went unnoticed.** The connector has an E2E module, but it contains 
only `MqttSinkIT`. There is no source IT, so the only end-to-end coverage 
exercises the side that works. The source appears to have been in this state 
since it was added in #10935 on 2026-06-08.
   
   The PR adds a regression test to the existing `MqttSourceTest` that writes 
an `MqttSource` through an `ObjectOutputStream`. It fails with the exception 
above on unmodified `dev` and passes with the change.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to