Repository navigation
Conversation
b515fbf to
93a43b2
Compare
There was a problem hiding this comment.
Warning
Copilot couldn't run its full agentic review because it didn't start before the timeout. Make sure your repository has a runner available, or add a copilot-code-review.yml file specifying one with the runs-on attribute. See the docs for more details.
Copilot review overview
7 open issues
The test definesvalbut later asserts againstvalue, which is undefined and will fail… · New The test definesvalbut later asserts againstvalue, which is undefined and will fail… · New The test definesvalbut later asserts againstvalue, which is undefined and will fail… · NewBinaryMetadataimplementsExternalizable, and this PR adds a new stateful field… · NewBinaryMetadataimplementsExternalizable, and this PR adds a new stateful field… · New The comment has grammatical issues and is a bit unclear. Consider rewording to something like:… · New This helper (newBuilder1) is not referenced anywhere in this new test file and duplicates the… · New
What changed in this PR
Fixes an issue where thin client binary type metadata can be cached in an incomplete state if a channel fails during binary object construction.
Changes:
- Add “partial fields” tracking to binary metadata updates to differentiate delta/partial metadata from full metadata.
- Make thin client re-request and merge binary metadata when receiving partial metadata after a reconnect/cache clear.
- Add/adjust tests to reproduce channel failure during metadata processing and verify binary context restoration after reconnect.
| File | Description |
|---|---|
| modules/thin-client/impl/src/main/java/org/apache/ignite/internal/client/thin/TcpIgniteClient.java | Re-request previous metadata version when only partial fields are available and local cache was cleared. |
| modules/binary/impl/src/main/java/org/apache/ignite/internal/binary/builder/BinaryObjectBuilderImpl.java | Track when metadata updates are partial and propagate this information into metadata updates. |
| modules/binary/api/src/main/java/org/apache/ignite/internal/binary/BinaryContext.java | Extend metadata update API to accept partialFields; restore predefined user types on reconnect. |
| modules/binary/api/src/main/java/org/apache/ignite/internal/binary/BinaryMetadata.java | Add partialFields flag and accessor to BinaryMetadata. |
| modules/core/src/main/java/org/apache/ignite/internal/processors/cache/binary/CacheObjectBinaryProcessorImpl.java | Invoke binary context reconnect hook after reconnect. |
| modules/core/src/test/java/org/apache/ignite/internal/client/thin/BinaryMetadataChannelFailureTest.java | New regression test reproducing channel failure during binary object build/metadata update. |
| modules/indexing/src/test/java/org/apache/ignite/client/ClientTestSuite.java | Include the new thin client regression test in the suite. |
| modules/core/src/test/java/org/apache/ignite/testsuites/IgniteClientReconnectTestSuite.java | Fix reconnect suite imports and include new reconnect test coverage. |
| modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectCustomBinaryContextTest.java | New test ensuring custom binary configuration is restored after reconnect. |
| modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectBinaryContexTest.java | Rename public test class to IgniteClientReconnectBinaryContextTest (but file rename appears missing). |
| modules/binary/api/src/main/java/org/apache/ignite/internal/binary/BinaryMetadataHandler.java | Documentation typo fix (“meta data” → “metadata”). |
Review effort: Lite
…channel fails while a binary object is being built
…ead of partialFields flag Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
|
/runall |
|
@nizhikov Ignite PR Checker verdict · RunAll build 9494416 · tested 952f7d1 · 149 suites ran, 0 reused
Everything below is what it did manage to say.
👀 2 tests started failing on this code — not proven blockers yet. There are too few runs of this code to tell a break from a flake. A re-run of the suite decides it.
1 run: the test ran once on this code and failed; a re-run of its suite confirms or clears it. What each label means and what to do: verdict glossary. |



No description provided.