Page MenuHomePhabricator

rebaser: Any reference edit/insertion will conflict with any other reference edit/insertion, because our transactions are crazy
Open, LowPublic

Description

When we edit a reference, we commit two transactions:

  • One that removes all the content from the internalItem for that reference
  • One that inserts the new content into the internalItem, but by replacing the contents of the entire internalList

When we insert a new reference, we commit five(!) transactions:

  • One that inserts a new empty internalItem
  • One that fills in the contents for that internalItem by replacing the contents of the entire internalList
  • One that inserts the mwReference node
  • One that removes all the content from the internalItem
  • One that puts that same content back again by replacing the contents of the entire internalList

This is pretty crazy and should be cleaned up for many reasons, but one particular problem for rebaser is that some of these transactions replace the entire internalList, which means that any other transaction touching the internal list will conflict with those.

Event Timeline

Catrope created this task.May 16 2018, 5:44 PM
Deskana triaged this task as Low priority.May 29 2018, 6:47 PM
Deskana moved this task from To Triage to Freezer on the VisualEditor board.
Vvjjkkii renamed this task from rebaser: Any reference edit/insertion will conflict with any other reference edit/insertion, because our transactions are crazy to 0ucaaaaaaa.Jul 1 2018, 1:09 AM
Vvjjkkii raised the priority of this task from Low to High.
Vvjjkkii updated the task description. (Show Details)
Vvjjkkii removed a subscriber: Aklapper.
CommunityTechBot renamed this task from 0ucaaaaaaa to rebaser: Any reference edit/insertion will conflict with any other reference edit/insertion, because our transactions are crazy.Jul 2 2018, 2:03 PM
CommunityTechBot lowered the priority of this task from High to Low.
CommunityTechBot updated the task description. (Show Details)
CommunityTechBot added a subscriber: Aklapper.