SEZ9 opened a new pull request, #12489:
URL: https://github.com/apache/seatunnel/pull/12489

   ### Purpose of this pull request
   
   OceanBase CDC can package an original Debezium `TableId` alongside the 
serializable version supplied by CDC base. When the OceanBase jar wins class 
loading, serializing the source state fails with `NotSerializableException: 
io.debezium.relational.TableId`, matching the failure observed in the Flink 
wrapper integration tests.
   
   Exclude transitive `debezium-core` and `debezium-api` from OceanBase's MySQL 
CDC dependency so the existing CDC base runtime supplies these classes. Extend 
`OceanBaseCDCCompatibilityIT` to serialize `TableId` using the shipped 
OceanBase/base jars in both discovery orders, with an isolated loader to keep 
the test classpath from masking the problem. Existing snapshot and 
incremental-data assertions remain enabled.
   
   The English and Chinese dependency instructions now explicitly list the 
matching OceanBase CDC and CDC base jars, which the integration-container setup 
already supplies.
   
   ### Does this PR introduce _any_ user-facing change?
   
   Fixes an order-dependent source serialization failure. No new dependency, 
version change, configuration change or public API change. CDC base remains the 
existing provided runtime dependency. No workflow, timeout or test-skip changes.
   
   ### How was this patch tested?
   
   Validated locally on OpenJDK 11 at `6709cfc11819`:
   
   - `./mvnw spotless:apply` — passed.
   - `./mvnw -q -DskipTests verify` — full reactor passed.
   - `OceanBaseIncrementalSourceFactoryTest` — 6 tests, zero 
failures/errors/skips.
   - Packaged-jar serialization on both OpenJDK 8 and 11: the baseline fails 
with OceanBase first; the fixed jars pass with either jar first.
   
   The existing Docker/Flink integration test was updated and compiled. It was 
not run locally because Docker is unavailable; its runtime result is pending 
remote CI.
   
   The local packaged-jar reproduction verifies the duplicate-class mechanism. 
It does not capture class origins from the previously failed remote Flink 
process; the existing integration job will validate the full runtime path.
   


-- 
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