[SERVER-77708] IDL chained structs may not always pass SerializationContext from enclosing type Created: 01/Jun/23  Updated: 09/Nov/23  Resolved: 09/Nov/23

Status: Closed
Project: Core Server
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Task Priority: Major - P3
Reporter: Hugh Tong (Inactive) Assignee: Backlog - Service Architecture
Resolution: Won't Do Votes: 0
Labels: ntdi_nice_to_have
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Assigned Teams:
Service Arch
Participants:

 Description   

In general, IDL chained structs act more like PODS, and their constitutent member variables are set one-by-one, rather than via a single parse() call or their constructors, which is normally how we pass a SerializationContext object from the enclosing type to the nested type.  Chained structs, which also enclose a SerializationContext object, bypass this mechanism, which can lead to inconsistent SerializationContext objects between the enclosing and nested types, and can cause silent failures especially if the nested chained struct is serializing/deserializing database name or namespace string types.

If the chained structs do not contain database name or namespace string types, and their SerializationContext objects are not consumed in any way, this may not actually pose a problem.  This is particularly true if the chained structs are used like PODS, so this ticket aims to first investigate if there are any chained structs that consume or forward for consumption their SerializationContext objects.



 Comments   
Comment by Didier Nadeau [ 09/Nov/23 ]

Closing as we're going to remove SerializationContext.

Generated at Thu Feb 08 06:36:21 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.