Uploaded image for project: 'Nuxeo Platform'
  1. Nuxeo Platform
  2. NXP-30542

Don't corrupt lists of multi-valued properties under concurrent update+delete

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: 10.10
    • Fix Version/s: 10.10-HF53, 2021.9
    • Component/s: Core MongoDB
    • Release Notes Summary:
      Concurrent updates and deletes for multi-valued properties is better managed with MongoDB.
    • Tags:
    • Backlog priority:
      1,000
    • Team:
      FG
    • Sprint:
      nxplatform #42, nxplatform #43, nxplatform #44
    • Story Points:
      8

      Description

      Under race conditions, it is possible to corrupt the data for multi-valued properties.

      For example, instead of having the "page:decisions" property like

      "page:decisions" : [
      { "reasons" : [], "reviewTypee" : "L1", "reviewed" : ISODate(""), "comment" : "", "reviewer" : "", "validity" : "valid", "resolution" : "approve", "workflowInstanceID" : "aa429ab3-e10e-48b0-ad6c-0918b22416cd", "fakeDetection" : "notApplicable" }] 

      it is now stored as

      "page:decisions" : {
      "1" :
      { "reasons" : [], "reviewTypee" : "L1", "reviewed" : ISODate(""), "comment" : "", "reviewer" : "", "validity" : "valid", "resolution" : "approve", "workflowInstanceID" : "aa429ab3-e10e-48b0-ad6c-0918b22416cd", "fakeDetection" : "notApplicable" }} 

      Because of this incorrect structure for a multi-valued property, it is now impossible to load the document.

       

      What is expected:

      • at least, being able to read the data with this incorrect structure to display the document
      • at best, being able to fix the data when someone will update the document with new values for this property

        Attachments

          Issue Links

            Activity

              People

              • Votes:
                1 Vote for this issue
                Watchers:
                7 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:

                  Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0 minutes
                  0m
                  Logged:
                  Time Spent - 2 days
                  2d

                    PagerDuty

                    Error rendering 'com.pagerduty.jira-server-plugin:PagerDuty'. Please contact your Jira administrators.