Page MenuHome

Crash editing materials nodes
Closed, ResolvedPublic

Description

Adding nodes sometimes causes a crash in source/blender/blenkernel/intern/node.c:2009

Blend file: sample affected .blend file (please do not attach this .blend file to this ticket directly: I don't want it preserved beyond he 5 month pastebin window.)

Adding math nodes to the lower right of the "Select Combinitorial Item" Node Group within the "Test Group Select Combinitorial Item" material in this .blend file often causes a crash.

Crash log from me:

Crash log from my MacBookPro8,3 running Mac OS X 10.10.3 Blender 2.75-RC2

scorpion81 (IRC) was also able to reproduce the crash under Linux.

(he offered to attach a link to his crash-log pastebin after an issue is created.)

Event Timeline

Loren Osborn (linux_dr) raised the priority of this task from to 90.
Loren Osborn (linux_dr) updated the task description. (Show Details)
Loren Osborn (linux_dr) edited a custom field.
Bastien Montagne (mont29) lowered the priority of this task from 90 to 50.Jun 26 2015, 12:29 PM

OK, can easily reproduce crash here on linux with debug+asan build…

Issue seems to be that ntreeLocalize() is used in threaded context, when from quick look at its code it seems it's not threadsafe at all…

Running threads at crash time:

(gdb) info threads
  Id   Target Id         Frame 
  31   Thread 0x7fffc71de700 (LWP 3045) "blender" 0x0000000004c27693 in MEM_lockfree_allocN_len (vmemh=0x613003c71848)
    at /home/i74700deb64/blender/__work__/src/intern/guardedalloc/intern/mallocn_lockfree_impl.c:125
  20   Thread 0x7fffcd546700 (LWP 2974) "blender" pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
  19   Thread 0x7fffcdd6c700 (LWP 2973) "blender" pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
  18   Thread 0x7fffce592700 (LWP 2972) "blender" pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
  17   Thread 0x7fffcedb8700 (LWP 2971) "blender" pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
  16   Thread 0x7fffcf5d6700 (LWP 2970) "blender" pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
  15   Thread 0x7fffcfdf4700 (LWP 2969) "blender" pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
  14   Thread 0x7fffd0612700 (LWP 2968) "blender" pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
  12   Thread 0x7fffd71dd700 (LWP 2966) "alsoft-mixer" pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:143
  11   Thread 0x7fffdba03700 (LWP 2965) "threaded-ml" 0x00007fffec7d150d in poll () at ../sysdeps/unix/syscall-template.S:81
  9    Thread 0x7fffdc3f8700 (LWP 2963) "blender" sem_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S:85
  8    Thread 0x7fffdcbf9700 (LWP 2962) "blender" sem_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S:85
  7    Thread 0x7fffdd3fa700 (LWP 2961) "blender" sem_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S:85
  6    Thread 0x7fffddbfb700 (LWP 2960) "blender" sem_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S:85
  5    Thread 0x7fffde3fc700 (LWP 2959) "blender" sem_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S:85
  4    Thread 0x7fffdebfd700 (LWP 2958) "blender" sem_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S:85
  3    Thread 0x7fffdf3fe700 (LWP 2957) "blender" sem_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S:85
  2    Thread 0x7fffdfbff700 (LWP 2956) "blender" sem_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S:85
* 1    Thread 0x7ffff7f97900 (LWP 2952) "blender" 0x0000000003e120be in ntreeLocalize (ntree=0x6140003b5e48) at /home/i74700deb64/blender/__work__/src/source/blender/blenkernel/intern/node.c:2010

Thread 31 BT:

#0  0x0000000004c27693 in MEM_lockfree_allocN_len (vmemh=0x613003c71848) at /home/i74700deb64/blender/__work__/src/intern/guardedalloc/intern/mallocn_lockfree_impl.c:125
125			return MEMHEAD_FROM_PTR(vmemh)->len & ~((size_t) (MEMHEAD_MMAP_FLAG | MEMHEAD_ALIGN_FLAG));
(gdb) bt
#0  0x0000000004c27693 in MEM_lockfree_allocN_len (vmemh=0x613003c71848) at /home/i74700deb64/blender/__work__/src/intern/guardedalloc/intern/mallocn_lockfree_impl.c:125
#1  0x0000000004c279dd in MEM_lockfree_dupallocN (vmemh=0x613003c71848) at /home/i74700deb64/blender/__work__/src/intern/guardedalloc/intern/mallocn_lockfree_impl.c:179
#2  0x0000000004735f62 in BLI_duplicatelist (dst=0x615000154150, src=0x6150001ca5d0) at /home/i74700deb64/blender/__work__/src/source/blender/blenlib/intern/listbase.c:629
#3  0x0000000003e09ff2 in nodeCopyNode (ntree=0x614000009448, node=0x6150001ca508) at /home/i74700deb64/blender/__work__/src/source/blender/blenkernel/intern/node.c:852
#4  0x0000000003e0c6d6 in ntreeCopyTree_internal (ntree=0x6140003b6048, bmain=0x61c000071888, skip_database=true, do_id_user=false, do_make_extern=false, copy_previews=false)
    at /home/i74700deb64/blender/__work__/src/source/blender/blenkernel/intern/node.c:1151
#5  0x0000000003e11cc4 in ntreeLocalize (ntree=0x6140003b6048) at /home/i74700deb64/blender/__work__/src/source/blender/blenkernel/intern/node.c:1983
#6  0x0000000003e11e37 in ntreeLocalize (ntree=0x6140003b5e48) at /home/i74700deb64/blender/__work__/src/source/blender/blenkernel/intern/node.c:1989
#7  0x0000000003e11e37 in ntreeLocalize (ntree=0x6140003b7c48) at /home/i74700deb64/blender/__work__/src/source/blender/blenkernel/intern/node.c:1989
#8  0x0000000003d5fcf1 in localize_material (ma=0x61900072a188) at /home/i74700deb64/blender/__work__/src/source/blender/blenkernel/intern/material.c:288
#9  0x0000000002b7dbe3 in preview_prepare_scene (bmain=0x61c000071888, scene=0x622000075108, id=0x61900072a188, id_type=16717, sp=0x60e0009ad6a8)
    at /home/i74700deb64/blender/__work__/src/source/blender/editors/render/render_preview.c:325
#10 0x0000000002b81a80 in shader_preview_render (sp=0x60e0009ad6a8, id=0x61900072a188, split=0, first=0) at /home/i74700deb64/blender/__work__/src/source/blender/editors/render/render_preview.c:719
#11 0x0000000002b82516 in shader_preview_startjob (customdata=0x60e0009ad6a8, stop=0x61200035e5bc, do_update=0x61200035e5ba)
    at /home/i74700deb64/blender/__work__/src/source/blender/editors/render/render_preview.c:798
#12 0x0000000002b83e09 in common_preview_startjob (customdata=0x60e0009ad6a8, stop=0x61200035e5bc, do_update=0x61200035e5ba, UNUSED_progress=0x61200035e5c0)
    at /home/i74700deb64/blender/__work__/src/source/blender/editors/render/render_preview.c:1037
#13 0x0000000001ee0d05 in do_job_thread (job_v=0x61200035e548) at /home/i74700deb64/blender/__work__/src/source/blender/windowmanager/intern/wm_jobs.c:331
#14 0x00000000047ec29e in tslot_thread_start (tslot_p=0x6060007296e8) at /home/i74700deb64/blender/__work__/src/source/blender/blenlib/intern/threads.c:254
#15 0x00007ffff53960a4 in start_thread (arg=0x7fffc71de700) at pthread_create.c:309
#16 0x00007fffec7da04d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Thread 1 BT:

#0  0x0000000003e120be in ntreeLocalize (ntree=0x6140003b5e48) at /home/i74700deb64/blender/__work__/src/source/blender/blenkernel/intern/node.c:2010
2010				node->new_node->new_node = node;
(gdb) bt
#0  0x0000000003e120be in ntreeLocalize (ntree=0x6140003b5e48) at /home/i74700deb64/blender/__work__/src/source/blender/blenkernel/intern/node.c:2010
#1  0x0000000003e11e37 in ntreeLocalize (ntree=0x6140003b7c48) at /home/i74700deb64/blender/__work__/src/source/blender/blenkernel/intern/node.c:1989
#2  0x000000000411ab70 in ntreeGPUMaterialNodes (ntree=0x6140003b7c48, mat=0x61e000113488, compatibility=2) at /home/i74700deb64/blender/__work__/src/source/blender/nodes/shader/node_shader_tree.c:205
#3  0x0000000003916fb1 in GPU_material_from_blender (scene=0x622000075108, ma=0x61900072a188) at /home/i74700deb64/blender/__work__/src/source/blender/gpu/intern/gpu_material.c:1748
#4  0x00000000038f7f8f in GPU_begin_object_materials (v3d=0x6140003a9848, rv3d=0x6190007c9788, scene=0x622000075108, ob=0x61b000151c88, glsl=true, do_alpha_after=0x0)
    at /home/i74700deb64/blender/__work__/src/source/blender/gpu/intern/gpu_draw.c:1571
#5  0x00000000021e76a8 in draw_mesh_object (scene=0x622000075108, ar=0x6140003a9a48, v3d=0x6140003a9848, rv3d=0x6190007c9788, base=0x604000904298, dt=4 '\004', 
    ob_wire_col=0x7fffffffd7f0 "\377\252@\377\377\177", dflag=0) at /home/i74700deb64/blender/__work__/src/source/blender/editors/space_view3d/drawobject.c:4342
#6  0x0000000002203827 in draw_object (scene=0x622000075108, ar=0x6140003a9a48, v3d=0x6140003a9848, base=0x604000904298, dflag=0)
    at /home/i74700deb64/blender/__work__/src/source/blender/editors/space_view3d/drawobject.c:7788
#7  0x0000000002150fe7 in view3d_draw_objects (C=0x60b00000af98, scene=0x622000075108, v3d=0x6140003a9848, ar=0x6140003a9a48, grid_unit=0x7fffffffde80, do_bgpic=true, draw_offscreen=false, fx=0x0)
    at /home/i74700deb64/blender/__work__/src/source/blender/editors/space_view3d/view3d_draw.c:2850
#8  0x000000000215786e in view3d_main_area_draw_objects (C=0x60b00000af98, scene=0x622000075108, v3d=0x6140003a9848, ar=0x6140003a9a48, grid_unit=0x7fffffffde80)
    at /home/i74700deb64/blender/__work__/src/source/blender/editors/space_view3d/view3d_draw.c:3760
#9  0x0000000002158a84 in view3d_main_area_draw (C=0x60b00000af98, ar=0x6140003a9a48) at /home/i74700deb64/blender/__work__/src/source/blender/editors/space_view3d/view3d_draw.c:3912
#10 0x0000000002ba19f3 in ED_region_do_draw (C=0x60b00000af98, ar=0x6140003a9a48) at /home/i74700deb64/blender/__work__/src/source/blender/editors/screen/area.c:517
#11 0x0000000001ebdda9 in wm_method_draw_triple (C=0x60b00000af98, win=0x61200042f648) at /home/i74700deb64/blender/__work__/src/source/blender/windowmanager/intern/wm_draw.c:640
#12 0x0000000001ec041b in wm_draw_update (C=0x60b00000af98) at /home/i74700deb64/blender/__work__/src/source/blender/windowmanager/intern/wm_draw.c:1047
#13 0x0000000001eb0888 in WM_main (C=0x60b00000af98) at /home/i74700deb64/blender/__work__/src/source/blender/windowmanager/intern/wm.c:493
#14 0x0000000001eae5e0 in main (argc=1, argv=0x7fffffffe1e8) at /home/i74700deb64/blender/__work__/src/source/creator/creator.c:1925