Skip to content

Improve robustness of JdbcExecutor by safely handling multiple consumers#712

Open
mohit-devlogs wants to merge 1 commit intoapache:mainfrom
mohit-devlogs:jdbc-multi-source-stage-support
Open

Improve robustness of JdbcExecutor by safely handling multiple consumers#712
mohit-devlogs wants to merge 1 commit intoapache:mainfrom
mohit-devlogs:jdbc-multi-source-stage-support

Conversation

@mohit-devlogs
Copy link
Contributor

This PR makes the JdbcExecutor more robust by removing the faulty use of
WayangCollections.getSingle() in the function findJdbcExecutionOperatorTaskInStage().

The faulty function could potentially throw an exception if there were zero or
multiple consumers on the channel. This could cause the following runtime errors:

"[] is not a singleton"

This change will guarantee that the function now checks the number of consumers
before trying to access them, returning null if it doesn’t match the execution
pattern.

This is a status quo change, removing unneeded runtime errors in the JDBC
execution path.

@zkaoudi
Copy link
Contributor

zkaoudi commented Mar 7, 2026

How is this PR related to #711 ? It seems they both server the same purpose, no?

@mohit-devlogs
Copy link
Contributor Author

How is this PR related to #711 ? It seems they both server the same purpose, no?

The fix for the bug is implemented in the PR #711. The fix for the bug is implemented in the same way as in the findJdbcExecutionOperatorTaskInStage() method to fix the bug instead of WayangCollections.getSingle(). This PR is similar to the previous one in the sense that it is another fix for the robustness bug of JdbcExecutor. The only difference is the logic used to fix the bug in this PR is different from the previous one. The previous one could cause a bug due to the assumption made for the consumers. The reason for choosing to submit two PRs is that it is easier to review them separately. If you think the two PRs should be merged into one, I am happy to merge them.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants