Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-77708

IDL chained structs may not always pass SerializationContext from enclosing type

    • Type: Icon: Task Task
    • Resolution: Won't Do
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • Service Arch

      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.

            Assignee:
            backlog-server-servicearch [DO NOT USE] Backlog - Service Architecture
            Reporter:
            hugh.tong@mongodb.com Hugh Tong (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: