From eaceb2bda45d38cc22573a311e3bd1861d057c93 Mon Sep 17 00:00:00 2001 From: frrist Date: Tue, 15 Nov 2022 17:43:18 -0800 Subject: [PATCH] fix: don't parse VM messages whos source failed to apply - fixes #1088 --- tasks/messageexecutions/vm/task.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tasks/messageexecutions/vm/task.go b/tasks/messageexecutions/vm/task.go index 615b0cca9..269b3d9d2 100644 --- a/tasks/messageexecutions/vm/task.go +++ b/tasks/messageexecutions/vm/task.go @@ -90,6 +90,11 @@ func (t *Task) ProcessTipSets(ctx context.Context, current *types.TipSet, execut default: } + if parentMsg.Ret.ExitCode.IsError() { + log.Debugf("skip parsing vm messages for source message %s with exit code %s", parentMsg.Cid, parentMsg.Ret.ExitCode.String()) + continue + } + // TODO this loop could be parallelized if it becomes a bottleneck. // NB: the getActorCode method is the expensive call since it resolves addresses and may load the statetree. for _, child := range util.GetChildMessagesOf(parentMsg) {