fix(workflow): a save's response must not overwrite a newer local edit (WorkflowPersistService)
Los mantenedores suelen responder en 1 día
@yangzhang75 ya está trabajando en esto.
Desde el 14/9/2026.
Evaluación
Este issue todavía no se ha evaluado.
Descripción
What happened?
Every save applies its response as the workflow's metadata: the workspace autosave (workspace.component.ts), the menu's own save (MenuComponent.persistWorkflow: rename, description, revert) and the Canvas -> Form View switch's save. Saves are sent one at a time since #8456, so a response can land after a newer local edit and overwrite it:
- Rename the workflow while an autosave is in flight: the autosave's response puts the old name back (until the rename's own save answers).
- Click Form View, then rename while the switch's save is out: the rename's save is queued behind the switch's, the switch navigates when its own save completes, and the full-page load aborts the rename's save (metadata edits do not emit
workflowChanged(), so the hand-over does not wait for them).
Deferred from #8456 on review (threads on menu.component.ts:692 and :231): the rule belongs in WorkflowPersistService, the one place every save goes through, not in one caller.
How to reproduce?
- Open a workflow on the operator canvas and make a graph edit (an autosave starts).
- Before it answers, rename the workflow in the title bar.
- The title flips back to the old name when the autosave's response is applied.
Or: click Form View and rename during the hand-over's save; the rename is lost.
Proposed fix
In WorkflowPersistService: do not apply (or hand back for applying) a response a newer local edit has overtaken, for every caller alike -- e.g. a revision per save, or apply from the response only the fields that still match what was sent; and let the Form View hand-over wait for the save queue to drain rather than for its own save only.
Version/Branch
main, after #8456.
Commit Hash
main
Browsers
All
Relevant log output
n/a
- Lenguaje dominante
- Scala
- Estrellas
- 321
- Forks
- 192
- Merge medio
- 2 d 8 h
- PR fusionados (30 d)
- 131
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de apache/texera
-
Search bar autocomplete stops working after a model appears in the suggestionsPosiblemente ocupada @aglinxinyuan la tomó hace 18 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
apache/texera#8700 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
apache/texera#8682 · 5 comentarios ·
Los mantenedores suelen responder en 1 día
-
JSONL File Scan reads a JSON null as the text "null"Posiblemente ocupada @CaroFernando la tomó hace 16 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
apache/texera#8674 · 1 comentario · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
LARGE_BINARY test leaves a real S3 object behind on every S3-reachable runPosiblemente ocupada @ShawnGarello la tomó hace 1 día. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
Los mantenedores suelen responder en 1 día
-
Missing workflow returns 500 from workflow type endpointQuizá libre de nuevo @VuMartin la tomó hace 41 días y no hay ningún pull request abierto. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
apache/texera#8300 · 3 comentarios ·
Los mantenedores suelen responder en 1 día
Todos los issues de apache/texera
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
Los mantenedores suelen responder en 1 día
-
requires-triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
apache/datafusion-comet#7001 ·
Los mantenedores suelen responder en 1 día
-
? - Needs Triage documentation user_tools
Dificultad 2/5 Medio día Aptitud para principiantes 62/100
NVIDIA/cudf-spark-tools#2190 ·
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
lichess-org/lila#22088 ·
Los mantenedores suelen responder en 1 día
-
documentation
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
Los mantenedores suelen responder en 1 día