Maniphest T102325

Dragging image input from Image Texture node with already specified image datablock into Group Input will create unremovable image datablock user
Confirmed, NormalBUG

Assigned To
None
Authored By
Ludvik Koutny (rawalanche)
Nov 7 2022, 11:49 AM
Tags
  • BF Blender
  • Geometry Nodes
  • Nodes & Physics
Subscribers
Germano Cavalcante (mano-wii)
Iliya Katueshenock (Moder)
Ludvik Koutny (rawalanche)

Description

System Information
Operating system: Windows-10-10.0.19045-SP0 64 Bits
Graphics card: NVIDIA GeForce RTX 2080 Ti/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 522.25

Blender Version
Broken: version: 3.3.1, branch: master, commit date: 2022-10-04 18:35, hash: rBb292cfe5a936
Worked: probably never

Short description of error


When you create image texture node, select the image datablock and then drag the image input socket into an empty group input socket, a new image datablock user will be created (probably due to the image data type group input default value being hidden from the UI). Every copied instances of the group input node then counts as another user of this image datablock. Even if the image datablock is cleared from the image texture, the group inputs are still its user, so even when the image datablock has no real users in the file, it can not be purged

Exact steps for others to reproduce the error

  • Open attached file or:
    1. Select the default cube, create a new GN node network, and drop in image texture node
    2. Open any image file from the Image Texture node
    3. Once image is opened and used by Image Texture node, drag the image input socket into empty socket of the Group Input node
    4. Duplicate the group input node couple of times
    5. Disconnect the Image Texture connection from the Group Input node
    6. Click the X button on the Image Texture node to unlink the image from the node
    7. Go to File->Clean Up->Recursive Unused Datablocks
  • Set outliner to Blend file view, and notice the image is there

Result: Image can't be purged from the blender file even if it has no real users, and user can not remove the references to the image from the group input nodes
Expected: Either Group Input nodes should not hold references to image datablocks, or the Image data type sockets should have default value exposed, so user can clear it.

Event Timeline

Ludvik Koutny (rawalanche) created this task.Nov 7 2022, 11:49 AM
Ludvik Koutny (rawalanche) updated the task description.Nov 7 2022, 11:52 AM
Germano Cavalcante (mano-wii) updated the task description.Nov 7 2022, 9:25 PM
Germano Cavalcante (mano-wii) updated the task description.
Germano Cavalcante (mano-wii) changed the task status from Needs Triage to Confirmed.Nov 7 2022, 9:28 PM
Germano Cavalcante (mano-wii) changed the subtype of this task from "Report" to "Bug".
Germano Cavalcante (mano-wii) added projects: Geometry Nodes, Nodes & Physics.
Germano Cavalcante (mano-wii) added a subscriber: Germano Cavalcante (mano-wii).

Thank you for the report.
In fact the image is still referenced.
It seems related to T101615: Geometry Nodes Object Group input does not remove dependencies. (possibly the same problem).

Iliya Katueshenock (Moder) added a subscriber: Iliya Katueshenock (Moder).Nov 7 2022, 9:48 PM

The socket contains the image 3 times:
the value itself in the interface
default value within the group
+ perhaps a value from outside the group (not sure how it works and if I understood it correctly)
So yes, it looks like a duplicate. If you delete the socket, the owner also disappears.