[
https://issues.apache.org/jira/browse/IGNITE-28936?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18102567#comment-18102567
]
Ignite TC Bot edited comment on IGNITE-28936 at 8/6/26 8:40 PM:
----------------------------------------------------------------
Release-note triage: please confirm whether mixed-version clusters and rolling
upgrades are supported after GridDhtAtomicUpdateRequest fields were removed and
its wire-field order changed. This confirmation determines whether a
user-facing compatibility or migration release note is required.
was (Author: ignitetcbot):
Please confirm whether mixed-version clusters and rolling upgrades are
supported after GridDhtAtomicUpdateRequest fields were removed and its
wire-field order changed.
> Remove dead marshalling code from GridDhtAtomicUpdateRequest
> ------------------------------------------------------------
>
> Key: IGNITE-28936
> URL: https://issues.apache.org/jira/browse/IGNITE-28936
> Project: Ignite
> Issue Type: Sub-task
> Components: messaging
> Reporter: Anton Vinogradov
> Assignee: Anton Vinogradov
> Priority: Major
> Labels: IEP-132, compatibility
> Fix For: 2.19
>
> Time Spent: 1h 20m
> Remaining Estimate: 0h
>
> *Wire format change. Do this before 2.19 is released - after that it would
> break rolling upgrade.*
> h3. Goal
> Delete code that can never run, and fields that are always empty.
> h3. Why
> {{GridDhtAtomicUpdateRequest#forceTransformBackups}} is always {{false}}.
> Both places that create this message pass {{false}}:
> {{GridDhtAtomicUpdateFuture}} and {{GridDhtAtomicSingleUpdateFuture}}. All
> code under this flag is dead. Entry processors are never added, so the
> hand-written {{marshal}} and {{unmarshal}} have nothing to write, and three
> collection fields are always {{null}}.
> h3. How
> * delete {{entryProcessors}}, {{nearEntryProcessors}} and {{invokeArgs}};
> * delete the wire fields {{@Order(12) entryProcessorsBytes}}, {{@Order(13)
> nearEntryProcessorsBytes}}, {{@Order(14) invokeArgsBytes}};
> * delete {{@Order(11) forceTransformBackups}} and the constructor parameter,
> and update both callers;
> * delete {{marshal(Marshaller)}}, {{unmarshal(Marshaller, ClassLoader)}}, the
> {{MarshallableMessage}} interface and {{@UseBinaryMarshaller}};
> * renumber the remaining {{@Order}} values.
> h3. Expected result
> Every DHT atomic update request sends 4 fields less: one boolean and three
> empty collections. The class does not need a marshaller any more.
> h3. How to verify
> Atomic cache tests, including {{EntryProcessor}} and near cache updates. Full
> build with {{-Pcheckstyle}}.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)