You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Aleksandr Nikolaev (Jira)" <ji...@apache.org> on 2026/10/19 19:23:00 UTC

[jira] [Updated] (IGNITE-29172) Thin client caches incomplete binary type metadata if a channel fails while a binary object is being built

     [ https://issues.apache.org/jira/browse/IGNITE-29172?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Aleksandr Nikolaev updated IGNITE-29172:
----------------------------------------
    Ignite Flags:   (was: Docs Required,Release Notes Required)

> Thin client caches incomplete binary type metadata if a channel fails while a binary object is being built
> ----------------------------------------------------------------------------------------------------------
>
>                 Key: IGNITE-29172
>                 URL: https://issues.apache.org/jira/browse/IGNITE-29172
>             Project: Ignite
>          Issue Type: Task
>            Reporter: Aleksandr Nikolaev
>            Priority: Minor
>             Fix For: 2.19
>
>
> If a thin client channel fails while BinaryObjectBuilder.build() is running, the client can cache binary type metadata that lacks the fields of the object schema. After that, BinaryObject.type().fieldNames() returns an incomplete or empty list, while BinaryObject.field(name) still returns correct values. Server-side metadata is correct. The client keeps the broken state until the next channel failure.
> Cause: on channel failure, TcpIgniteClient clears the metadata cache and the schema registry. BinaryObjectBuilderImpl.serializeTo() has already read the old cached metadata, so it treats all fields as known and registers the schema with no field metadata. ClientBinaryMetadataHandler.addMeta() then sends the type to the server, which merges it correctly, and caches this partial metadata locally. Later reads find the schema in the registry and never reload the metadata.
> Reproducer: BinaryMetadataChannelFailureTest (patch attached) drops thin client connections while the builder resolves field IDs. 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)