Segfault, apparently due to an incorrect custom nodes setup

While testing with custom shading nodes a segfault occurs when adding a node that has an error. The node code isn’t correct yet (see traceback), hence I’m posting here to ask if this is considered a bug worth reporting? This is with git (2.81.10, 559df2fed9ad)

  1. $ blender -P nodes.py
  2. switch to the Shader Editor
  3. Shift-A
  4. Pick Output -> Custom Node
  5. I get the segfault shown below, including the error output on the console
Traceback (most recent call last):
  File "/home/melis/concepts/blender-ospray-engine/nodes.py", line 80, in init
    brilliance.default_value=1.8
AttributeError: 'NodeSocket' object has no attribute 'default_value'

location: /home/melis/software/blender-git/2.81/scripts/startup/bl_operators/node.py:92

location: /home/melis/software/blender-git/2.81/scripts/startup/bl_operators/node.py:92
Writing: /tmp/blender.crash.txt
Segmentation fault (core dumped)

Backtrace:

Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x0000560f178564a8 in BLI_strnlen (s=0x65737566666944 <error: Cannot access memory at address 0x65737566666944>, maxlen=127) at /home/melis/c/blender-git/source/blender/blenlib/intern/string.c:780
780	    if (!*s) {
[Current thread is 1 (Thread 0x7f0514ecab00 (LWP 7813))]
(gdb) bt
#0  0x0000560f178564a8 in BLI_strnlen (s=0x65737566666944 <error: Cannot access memory at address 0x65737566666944>, maxlen=127) at /home/melis/c/blender-git/source/blender/blenlib/intern/string.c:780
#1  0x0000560f17855164 in BLI_strncpy (dst=0x7fffc43294c0 "", src=0x65737566666944 <error: Cannot access memory at address 0x65737566666944>, maxncpy=128) at /home/melis/c/blender-git/source/blender/blenlib/intern/string.c:108
#2  0x0000560f17a50a90 in rna_Node_draw_label (ntree=0x560f1f953378, node=0x560f25a089a8, label=0x7fffc43294c0 "", maxlen=128) at /home/melis/c/blender-git/source/blender/makesrna/intern/rna_nodetree.c:1486
#3  0x0000560f1762f3d4 in nodeLabel (ntree=0x560f1f953378, node=0x560f25a089a8, label=0x7fffc43294c0 "", maxlen=128) at /home/melis/c/blender-git/source/blender/blenkernel/intern/node.c:3484
#4  0x0000560f1851e210 in node_draw_basis (C=0x560f1f19f348, ar=0x560f22a74348, snode=0x560f21bb7448, ntree=0x560f1f953378, node=0x560f25a089a8, key=...) at /home/melis/c/blender-git/source/blender/editors/space_node/node_draw.c:1221
#5  0x0000560f1851f3b0 in node_draw_default (C=0x560f1f19f348, ar=0x560f22a74348, snode=0x560f21bb7448, ntree=0x560f1f953378, node=0x560f25a089a8, key=...) at /home/melis/c/blender-git/source/blender/editors/space_node/node_draw.c:1512
#6  0x0000560f1851f4c4 in node_draw (C=0x560f1f19f348, ar=0x560f22a74348, snode=0x560f21bb7448, ntree=0x560f1f953378, node=0x560f25a089a8, key=...) at /home/melis/c/blender-git/source/blender/editors/space_node/node_draw.c:1544
#7  0x0000560f1851f6bb in node_draw_nodetree (C=0x560f1f19f348, ar=0x560f22a74348, snode=0x560f21bb7448, ntree=0x560f1f953378, parent_key=...) at /home/melis/c/blender-git/source/blender/editors/space_node/node_draw.c:1609
#8  0x0000560f1851f89c in draw_nodetree (C=0x560f1f19f348, ar=0x560f22a74348, ntree=0x560f1f953378, parent_key=...) at /home/melis/c/blender-git/source/blender/editors/space_node/node_draw.c:1647
#9  0x0000560f1851fead in drawnodespace (C=0x560f1f19f348, ar=0x560f22a74348) at /home/melis/c/blender-git/source/blender/editors/space_node/node_draw.c:1777
#10 0x0000560f18533c33 in node_main_region_draw (C=0x560f1f19f348, ar=0x560f22a74348) at /home/melis/c/blender-git/source/blender/editors/space_node/space_node.c:630
#11 0x0000560f18619646 in ED_region_do_draw (C=0x560f1f19f348, ar=0x560f22a74348) at /home/melis/c/blender-git/source/blender/editors/screen/area.c:535
#12 0x0000560f17b6d1f6 in wm_draw_window_offscreen (C=0x560f1f19f348, win=0x560f1f8e2348, stereo=false) at /home/melis/c/blender-git/source/blender/windowmanager/intern/wm_draw.c:632
#13 0x0000560f17b6d775 in wm_draw_window (C=0x560f1f19f348, win=0x560f1f8e2348) at /home/melis/c/blender-git/source/blender/windowmanager/intern/wm_draw.c:768
#14 0x0000560f17b6dd41 in wm_draw_update (C=0x560f1f19f348) at /home/melis/c/blender-git/source/blender/windowmanager/intern/wm_draw.c:950
#15 0x0000560f17b69b98 in WM_main (C=0x560f1f19f348) at /home/melis/c/blender-git/source/blender/windowmanager/intern/wm.c:423
#16 0x0000560f174b4958 in main (argc=3, argv=0x7fffc4329ae8) at /home/melis/c/blender-git/source/creator/creator.c:491

In the very least probably a good idea to post a nodes.py with the simplest possible node setup that makes this crash. I’d report with that minimal py-code and instructions to repeat.

I can trigger a crash with an implementation of the draw_label method in the node class:

def draw_label(self):
    return "my Label"

It is most likely an internal Blender bug, it happens even with correctly implemented custom nodes.

Great, please report this as a bug.

Segfaults should be dealt with no matter what :slight_smile:

Looks like @BYOB created an issue for this: https://developer.blender.org/T69808

No, the author of the issue is Omar Ahmad.
Thanks to him for creating the report, by the way.