Page MenuHome

Deleting keyframe in node group makes a zombie action data block when the node had an action
Closed, ArchivedPublic

Description

System Information
Windows 8.1 Pro 64bit, GeForce GTX660

Blender Version
Broken: 2.76, 2.77Testbuild1

Short description of error
Deleting keyframe in node group makes a zombie action data block when the node had an action.

Exact steps for others to reproduce the error

  1. Add a node (e.g. Material node)
  2. Insert a keyframe for a parameter of the node (In this operation, "Shader NodetreeAction" is added)
  3. Make a group include the node (In this operation, "Shader NodetreeAction.001" is added)
  4. Delete the keyframe in the group

Then go Outliner and select Datablock view, you will see two action datablocks, "Shader NodetreeAction" and "Shader NodetreeAction.001". Latter has no users (so it will be deleted when save the file), but former has one user that can't be delete.
Why the original action remains and can we delete it?

Thanks,

Details

Type
Bug

Event Timeline

Satoshi Yamasaki (yamyam) raised the priority of this task from to Needs Triage by Developer.
Satoshi Yamasaki (yamyam) updated the task description. (Show Details)
Satoshi Yamasaki (yamyam) set Type to Bug.
Bastien Montagne (mont29) lowered the priority of this task from Needs Triage by Developer to Confirmed, Medium.Feb 20 2016, 1:06 PM

This is kinda corner case… What happens is that when you group, you create a new NodeTree ID, which gets a new action. Old action remains attached to original NodeTree, so it technically still has one user. I guess we could (should) check whether original action is empty after grouping, and detach it in this case?

Actually, even worse, in debug build we get a nice crash when ungrouping some animated nodes… yuck.

@Joshua Leung (aligorith) you may be interested by that one too?

Ok, fixed hard crash in rB813255355379.

This still leaves a mess in usercount, but would be tempted to consider this a TODO for now - and check in id-remap how it works, this branch is supposed to have much better ID handling than our current master (which fails in many corner cases on this topic).

Thank you Bastien for your hard work. :)
I think it would be nice that Outliner has the ability to delete such zombie datablocks like orphans too.

Sergey Sharybin (sergey) closed this task as Archived.May 3 2016, 11:16 AM
Sergey Sharybin (sergey) claimed this task.

Would really consider it a TODO since it's something what never worked really correct and there's ongoing project on improving related areas.

Thanks for the report anyway!