[ 
https://issues.apache.org/jira/browse/IGNITE-29172?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18134209#comment-18134209
 ] 

Ignite TC Bot commented on IGNITE-29172:
----------------------------------------

{panel:title=Branch: [pull/13758/head] Base: [master] : No blockers 
found!|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}{panel}
{panel:title=Branch: [pull/13758/head] Base: [master] : New Tests 
(17)|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}
{color:#00008b}Thin Client: Java{color} [[tests 
3|https://ci2.ignite.apache.org/viewLog.html?buildId=9453741]]
* {color:#013220}ClientTestSuite: thin.CacheConfigurationTest - PASSED{color}
* {color:#013220}ClientTestSuite: 
BinaryMetadataChannelFailureTest.testChannelFailureDuringBuild[differentValue = 
false] - PASSED{color}
* {color:#013220}ClientTestSuite: 
BinaryMetadataChannelFailureTest.testChannelFailureDuringBuild[differentValue = 
true] - PASSED{color}

{color:#00008b}Client Nodes{color} [[tests 
2|https://ci2.ignite.apache.org/viewLog.html?buildId=9453685]]
* {color:#013220}IgniteClientReconnectTestSuite: 
IgniteClientReconnectCustomBinaryContextTest.testReconnect - PASSED{color}
* {color:#013220}IgniteClientReconnectTestSuite: 
IgniteClientReconnectBinaryContextTest.testReconnectCleaningUsersMetadata - 
PASSED{color}

{color:#00008b}Calcite SQL 1{color} [[tests 
12|https://ci2.ignite.apache.org/viewLog.html?buildId=9453683]]
* 
{color:#013220}org.apache.ignite.internal.processors.tx.SqlTransactionsIsolationTest.gridCnt=1,
 backups=0, partitionAwareness=false, mode=PARTITIONED, execType=CLIENT, 
modify=QUERY, commit=false, multi=false, txConcurrency=OPTIMISTIC - 
PASSED{color}
* 
{color:#013220}org.apache.ignite.internal.processors.tx.SqlTransactionsIsolationTest.gridCnt=1,
 backups=0, partitionAwareness=false, mode=PARTITIONED, execType=SERVER, 
modify=QUERY, commit=false, multi=false, txConcurrency=OPTIMISTIC - 
PASSED{color}
* 
{color:#013220}org.apache.ignite.internal.processors.tx.SqlTransactionsIsolationTest.gridCnt=1,
 backups=0, partitionAwareness=true, mode=PARTITIONED, execType=THIN_VIA_QUERY, 
modify=ENTRY_PROCESSOR, commit=true, multi=true, txConcurrency=PESSIMISTIC - 
PASSED{color}
* 
{color:#013220}org.apache.ignite.internal.processors.tx.SqlTransactionsIsolationTest.gridCnt=1,
 backups=0, partitionAwareness=false, mode=PARTITIONED, 
execType=THIN_VIA_QUERY, modify=ENTRY_PROCESSOR, commit=true, multi=true, 
txConcurrency=PESSIMISTIC - PASSED{color}
* 
{color:#013220}org.apache.ignite.internal.processors.tx.SqlTransactionsIsolationTest.gridCnt=1,
 backups=0, partitionAwareness=true, mode=PARTITIONED, 
execType=THIN_VIA_CACHE_API, modify=QUERY, commit=false, multi=false, 
txConcurrency=OPTIMISTIC - PASSED{color}
* 
{color:#013220}org.apache.ignite.internal.processors.tx.SqlTransactionsIsolationTest.gridCnt=1,
 backups=0, partitionAwareness=false, mode=PARTITIONED, 
execType=THIN_VIA_CACHE_API, modify=QUERY, commit=false, multi=false, 
txConcurrency=OPTIMISTIC - PASSED{color}
* 
{color:#013220}org.apache.ignite.internal.processors.tx.SqlTransactionsIsolationTest.gridCnt=1,
 backups=0, partitionAwareness=false, mode=PARTITIONED, execType=SERVER, 
modify=ENTRY_PROCESSOR, commit=true, multi=true, txConcurrency=PESSIMISTIC - 
PASSED{color}
* 
{color:#013220}org.apache.ignite.internal.processors.tx.SqlTransactionsIsolationTest.gridCnt=1,
 backups=0, partitionAwareness=true, mode=PARTITIONED, execType=THIN_VIA_QUERY, 
modify=ENTRY_PROCESSOR, commit=true, multi=true, txConcurrency=OPTIMISTIC - 
PASSED{color}
* 
{color:#013220}org.apache.ignite.internal.processors.tx.SqlTransactionsIsolationTest.gridCnt=1,
 backups=0, partitionAwareness=false, mode=PARTITIONED, 
execType=THIN_VIA_QUERY, modify=ENTRY_PROCESSOR, commit=true, multi=true, 
txConcurrency=OPTIMISTIC - PASSED{color}
* 
{color:#013220}org.apache.ignite.internal.processors.tx.SqlTransactionsIsolationTest.gridCnt=1,
 backups=0, partitionAwareness=true, mode=PARTITIONED, 
execType=THIN_VIA_CACHE_API, modify=ENTRY_PROCESSOR, commit=true, multi=true, 
txConcurrency=PESSIMISTIC - PASSED{color}
* 
{color:#013220}org.apache.ignite.internal.processors.tx.SqlTransactionsIsolationTest.gridCnt=1,
 backups=0, partitionAwareness=false, mode=PARTITIONED, 
execType=THIN_VIA_CACHE_API, modify=ENTRY_PROCESSOR, commit=true, multi=true, 
txConcurrency=PESSIMISTIC - PASSED{color}
... and 1 new tests

{panel}
[TeamCity *--> Run :: All* 
Results|https://ci2.ignite.apache.org/viewLog.html?buildId=9453800&buildTypeId=IgniteTests24Java8_RunAll]
{color:#ffffff}tcbot-analysis-comment chainBuildId=9453800 
rerunBuildIds=9453966,9453968,9453970,9453972{color}

> 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
>          Components: thin client
>    Affects Versions: 2.18, 2.19
>            Reporter: Aleksandr Nikolaev
>            Assignee: Evgeny Stanilovsky
>            Priority: Major
>             Fix For: 2.20
>
>         Attachments: thin-client-binary-metadata-channel-failure.patch
>
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> 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
(v10.3.26#10030026)

Reply via email to