-
-
Notifications
You must be signed in to change notification settings - Fork 224
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
BUG: Publishing individual nodes is impossible when contents were created on a deleted document #4997
Comments
Thanks for documenting this bug ... so we first suspected that got fixed in the meantime but that is not the case. Well with publishing version 3 we do prevent any corruption happening to the content stream. So that is the good news. The ui continues to work and so will all cli commands. So this behaviour is fixed. Now i can exactly reproduce the behaviour:
events at this step
change records at this step
additional events at this step
change records at this step
Publish site does not work
Discard site does not work
Publishing or discarding other selective changes does continue to work, as long as the site is not attempted to be published. Now the problem is similar to the one of creating a new document and another new document within and attempting to publish only that: #5364 The ui request the node But this scenario really shows the problems with publishing: ANY unpublished changes within a hierarchy will prevent that part of the tree from being deleted. Regarding the proposed solution:
The other change records must not be removed but rather tied together, possibly by sharing the same removalAttachmentPoint so they are published or discarded in sync. As for similar cases we definitely want to extend the Neos ui to offer a "Publish whole workspace" or "Discard whole workspace" instead to allow resolving such conflicts directly. (see neos/neos-ui#3893) Solving this via publish/discard whole workspace is just an escape hatch without any possibly for fine grained behaviour. Instead the change projection, or the core publish api has to be able to deal with this. |
Problem description
It is possible for editors to get trapped in an inescapably broken workspace state by trying to publish a change set that contains both the creation of a document node and the deletion of that same node.
Steps to reproduce:
The exception being thrown is:
#1541678486: Node aggregate "..." does currently not exist
. This happens during the handling of commandCreateNodeAggregateWithNodeAndSerializedProperties
.If an attempt has been made to publish this change set via the UI, the workspace is now broken. It cannot be published, discarded or even rebased via the UI. The only escape-hatch is the CLI:
If you only take the first 3 steps, it is possible to publish the changes via CLI:
The problem is limited to
PublishIndividualNodesFromWorkspace
andDiscardIndividualNodesFromWorkspace
.Once the publishing attempt via the UI has been made,
./flow workspace:publish
ceases to work as well.Notes on solution
@kitsunet noted in Slack:
Indeed, the ChangeProjection currently only flags the respective change records as both
created
anddeleted
. It should be possible to remove the change record instead, if it has been flagged ascreated
and a deletion comes in.The text was updated successfully, but these errors were encountered: