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

Anton Vinogradov commented on IGNITE-28938:
-------------------------------------------

[Ignite PR Checker|https://ignite-pr-checker.is-a.dev/?pr=13427] verdict for PR 
13427 · RunAll build [9253822|https://ci2.ignite.apache.org/build/9253822] · 
147 suites ran, 0 reused

(!) *This run doesn't cover the PR fully:*
- 1 suite(s) have no reliable result (compilation error, timeout, crash)
- 1 suite(s) ran far fewer tests than the same suites on master

(!) *1 broken suite(s)* (failed without a reliable run):
- Cache (Failover) 5: execution timeout · non-zero exit code · Number of tests 
33 is 51% less than 67 in build #452

(?) *1 suite(s) ran fewer tests than on master* (tests that never ran can't 
fail):
- Cache (Failover) 5: 33 tests vs 67 on master (*-51%*)

(x) *3 blocker(s) in 3 suite(s):*
- Platform .NET (Core Linux): {{Apache.Ignite.Core.Tests.DotNetCore: 
Apache.Ignite.Core.Tests.Examples.ThickExamplesExternalNodeTest.TestThickExampleWithExternalNode(TransactionDeadlockDetection)}}
- Basic 2: 
{{org.apache.ignite.testsuites.IgniteMessagingConfigVariationFullApiTestSuite: 
org.apache.ignite.testframework.configvariations.generated.IgniteMessagingConfigVariationFullApiTest_5.testClientClientOrderedMessage}}
- Cache (Failover) 3: 
{{org.apache.ignite.testsuites.IgniteCacheFailoverTestSuite3: 
org.apache.ignite.internal.processors.cache.distributed.dht.IgniteCachePutRetryAtomicSelfTest.testInvoke}}


⏳ _Auto re-run *#1* in progress — 3 blocker + 1 broken suite(s) re-queued 
(attempt 1/2), *≈ settled by 02:35 MSK*. This comment updates when they settle._

> Split MarshallableMessage: callback before send vs marshalling
> --------------------------------------------------------------
>
>                 Key: IGNITE-28938
>                 URL: https://issues.apache.org/jira/browse/IGNITE-28938
>             Project: Ignite
>          Issue Type: Sub-task
>          Components: messaging
>            Reporter: Anton Vinogradov
>            Assignee: Anton Vinogradov
>            Priority: Major
>              Labels: IEP-132
>             Fix For: 2.19
>
>          Time Spent: 2.5h
>  Remaining Estimate: 0h
>
> *No wire format change.*
> h3. Goal
> Do not give a marshaller to messages that only need a callback before send.
> h3. Why
> {{MarshallableMessage}} is used for two different things. 12 of its 21 
> implementations really use the marshaller. The other 8 use neither the 
> marshaller nor the class loader - they only change their own fields:
> * {{CacheContinuousQueryEntry}} - clears data;
> * {{GridCacheEntryInfo}} - recalculates TTL;
> * {{GridDhtPartitionsFullMessage}} and {{GridDhtPartitionsSingleMessage}} - 
> copy and zip partition maps;
> * {{GridNearTxPrepareRequest}} - sets an expiry policy flag;
> * {{ColocationGroup}} - packs bits;
> * {{CompressedMessage}} and {{GridH2ValueMessage}}.
> All 8 still get a {{Marshaller}} field in the generated companion.
> h3. How
> * add a new interface for the callback, with no marshaller and no class 
> loader;
> * move these 8 classes to it, so the generator calls the callback instead of 
> {{msg.marshal(marshaller)}};
> * keep {{MarshallableMessage}} for the other 12.
> h3. Expected result
> The type now shows if a class needs a marshaller. 8 companions lose the 
> field. {{GridTestUtils#loadMarshaller}} becomes correct again: it picks a 
> constructor by {{instanceof MarshallableMessage}}, while the generator uses 
> {{marshallable || hasMarshalled}}.
> h3. How to verify
> Full build and the message tests. Generated code of these 8 classes must stay 
> the same, except the removed field.



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

Reply via email to