fix(plugin-oracle): stop rows split across packets from crashing the app - #3246
Merged
Merged
Conversation
Repins oracle-nio to TableProApp/oracle-nio#12. A row whose last field ended in the next TNS packet was reported complete and the rest read as a new message; the failed stream then hit a precondition while reporting the error, and so did any close while rows were streaming. NULL objects now decode as NULL, and object, cursor and NCLOB columns get a type name. Fixes #3241
|
Preview deployment for your docs. Learn more about Mintlify Previews.
💡 Tip: Enable Automations to automatically generate PRs for you. |
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Opening an Oracle table with SDO_GEOMETRY and BLOB columns closed TablePro, or reset the connection with "The server sent an unexpected message". When a network packet ended inside the last field of a row, the Oracle driver treated the row as complete and read the rest as a new message. The connection then failed while rows were streaming, and the driver trapped while reporting that failure. Stopping a query or disconnecting while rows were loading hit the same trap.
Change
Verified
The reporter's browse query returns all 1000 rows on Oracle 21c XE and 23ai, including real MDSYS.SDO_GEOMETRY, where it crashed before; stopping mid-stream no longer crashes. The fork's new tests fail before the fix.
Not in this PR
plugin-oracle-v*release.Fixes #3241