Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

StephenMolloy
Copy link
Member

Backporting #75366 which was a backport of #74599 to 7.0 for RC2 from 8.0.

Customer Impact

DataContractSerializer has not been properly accounting for big-or-little endian-ness when writing a few types "to the wire." This has not previously been an issue, since to my knowledge there have not been any commonly used big-endian platforms with .Net. DCS writes little-endian on the wire, so not accounting for endian-ness has simply worked because little-endian platforms write little-endian on the wire as expected. IBM helped bring .Net to their big-endian s360 platform in 6.0 however, causing failures when serializing between different platforms.

Testing

Tests were added to check the correct little-endian output for affected types and arrays of types.

Regression

No... but kind of yes. Strictly speaking, the code has always missed this -endian handling for these types and was not regressed. But the introduction of big-endian implementations of dotnet in 6.0 has exposed this issue. So in a sense, DCS was fine in 5.0 and now is not correct on some platforms in 6.0 and later.

Risk

Low. The change is faithful to current execution for little-endian platforms and only does different things on a big-endian platform... which is currently broken without this fix.

@ghost ghost added the area-Serialization label Nov 11, 2022
@StephenMolloy StephenMolloy self-assigned this Nov 11, 2022
@StephenMolloy StephenMolloy added this to the 6.0.x milestone Nov 11, 2022
@carlossanlop
Copy link
Contributor

When this is ready, please send an email to Tactics requesting approval, add the servicing-consider label, and request a code review sign-off from an area owner. Monday 14th is the deadline for merging fixes that should go into the December release.

@StephenMolloy
Copy link
Member Author

/azp run runtime-community

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@StephenMolloy
Copy link
Member Author

@mconnew and @HongGit - this is just #75648 reincarnated to force rebasing onto a more compliant point of release/6.0. Tests are passing without boatloads of noise now. :)

@carlossanlop
Copy link
Contributor

@StephenMolloy today is the deadline for merging backports that should go into December release. Please get an M2 sign-off, then send an email to Tactics to request backport approval, and add the servicing-consider label.

@carlossanlop carlossanlop added the NO-MERGE The PR is not ready for merge yet (see discussion for detailed reasons) label Nov 15, 2022
@StephenMolloy StephenMolloy changed the title [release/6.0] Manually backporting #74599 to 6.0 take 2 [release/6.0] Manually backporting #74599 to 6.0 Nov 18, 2022
@StephenMolloy StephenMolloy added the Servicing-consider Issue for next servicing release review label Nov 19, 2022
@carlossanlop carlossanlop added Servicing-approved Approved for servicing release and removed NO-MERGE The PR is not ready for merge yet (see discussion for detailed reasons) Servicing-consider Issue for next servicing release review labels Nov 21, 2022
@carlossanlop
Copy link
Contributor

Approved by Tactics via email.

@HongGit HongGit modified the milestones: 6.0.x, 6.0.14 Nov 29, 2022
@carlossanlop carlossanlop modified the milestones: 6.0.x, 6.0.14 Nov 29, 2022
@carlossanlop
Copy link
Contributor

Approved by Tactics (6.0.14).
Signed off by area owner.
No OOB changes needed for the involved csproj files (No IsPackable=true).
CI green.
Ready to merge. :shipit:

@carlossanlop carlossanlop merged commit 928ba8f into dotnet:release/6.0 Jan 4, 2023
@ghost ghost locked as resolved and limited conversation to collaborators Feb 4, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-Serialization Servicing-approved Approved for servicing release
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants