Skip to content

Receive node causes objection mutation by reference #144

Description

@CapricaBSG

If you have two receive nodes that listen to the same room ID the message that is passed along is the same, and can mutate each other's object.

E.g. if you have one receive message node to listen to specific bot commands !help, etc, etc and then modify in place that msg object, a separate receive message node which is listening to users for bot rules (e.g. no links to illicit websites) then there can be conflict if that function also modifies in place.

I've added a simple demo to display the root issue demo.json

Im pretty sure the issue is with node.server.on("Room.timeline", async function(event, room, toStartOfTimeline, removed, data, msg),
and node.send(msg), i think cloning the incoming msg as something else and returning the clone would fix it

You can also just simple not have multiple receive nodes listen to the same thing and use a junction with your own deep cloning function.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions