Array/Skin-Modifier-Combo causes crash #59770

Closed
opened 2018-12-22 22:23:43 +01:00 by user1 · 10 comments

System Information
Operating system: Linux Mint 19
Graphics card: GT630

Blender Version
Broken:
2.80 (sub 39), branch: blender2.8, commit date: 2018-12-20 23:46, hash: 7a26e930a8

Short description of error

Please try to toggle the "visibility" of the skin modifier in my simple file. It crashes instantly and repeatingly:
Procedural leaves feathered1.blend
Procedural leaves feathered1.png

**System Information** Operating system: Linux Mint 19 Graphics card: GT630 **Blender Version** Broken: 2.80 (sub 39), branch: blender2.8, commit date: 2018-12-20 23:46, hash: 7a26e930a8c0 **Short description of error** Please try to toggle the "visibility" of the skin modifier in my simple file. It crashes instantly and repeatingly: [Procedural leaves feathered1.blend](https://archive.blender.org/developer/F6038617/Procedural_leaves_feathered1.blend) ![Procedural leaves feathered1.png](https://archive.blender.org/developer/F6038620/Procedural_leaves_feathered1.png)
Author

Added subscriber: @user1

Added subscriber: @user1
Author

I think blender wants to tell me that i can't have start- and endcap that are already skinned, because then they will be skinned twice. If i delete the skin modifier from the start- and endcap, it stops crashing:
Procedural leaves feathered2.png
...while the result is unexpected though.

I think blender wants to tell me that i can't have start- and endcap that are already skinned, because then they will be skinned twice. If i delete the skin modifier from the start- and endcap, it stops crashing: ![Procedural leaves feathered2.png](https://archive.blender.org/developer/F6038702/Procedural_leaves_feathered2.png) ...while the result is unexpected though.

Added subscriber: @ZedDB

Added subscriber: @ZedDB
Campbell Barton was assigned by Sebastian Parborg 2019-01-24 12:07:54 +01:00

I'm getting an asset if I leave the subdiv modifier on:
BLI_assert failed: /home/zed/programmering/blender_master/blender/source/blender/modifiers/intern/MOD_skin.c:982, add_poly(), at 'v1 != v2 && v1 != v3 && v1 != v4'

And this segfault if I toggle it off:

Thread 25 "blender" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffdb3fe700 (LWP 19974)]
0x0000555557a3f965 in skin_output_end_nodes (so=0x7fffdb3fd4d0, skin_nodes=0x7fffd7132008, totvert=1480)
    at /home/zed/programmering/blender_master/blender/source/blender/modifiers/intern/MOD_skin.c:1595
1595					v_order[i] = sn->frames[1].verts[order[i]];
(gdb) bt
#0  0x0000555557a3f965 in skin_output_end_nodes (so=0x7fffdb3fd4d0, skin_nodes=0x7fffd7132008, totvert=1480)
    at /home/zed/programmering/blender_master/blender/source/blender/modifiers/intern/MOD_skin.c:1595
#1  0x0000555557a42cc1 in build_skin (skin_nodes=0x7fffd7132008, totvert=1480, emap=0x7fffd710b008, medge=0x7fffd7105008, totedge=1735, input_dvert=0x0,
    smd=0x7fffef673708) at /home/zed/programmering/blender_master/blender/source/blender/modifiers/intern/MOD_skin.c:1814
#2  0x0000555557a42eb9 in base_skin (origmesh=0x7fffd701ed08, smd=0x7fffef673708)
    at /home/zed/programmering/blender_master/blender/source/blender/modifiers/intern/MOD_skin.c:1871
#3  0x0000555557a42fe3 in final_skin (smd=0x7fffef673708, mesh=0x7fffd701ed08)
    at /home/zed/programmering/blender_master/blender/source/blender/modifiers/intern/MOD_skin.c:1903
#4  0x0000555557a43068 in applyModifier (md=0x7fffef673708, UNUSED_ctx=0x7fffdb3fd760, mesh=0x7fffd701fb08)
    at /home/zed/programmering/blender_master/blender/source/blender/modifiers/intern/MOD_skin.c:1930
#5  0x00005555580d792c in modwrap_applyModifier (md=0x7fffef673708, ctx=0x7fffdb3fd760, me=0x7fffd701fb08)
    at /home/zed/programmering/blender_master/blender/source/blender/blenkernel/intern/modifier.c:839
#6  0x0000555557f6bcf5 in mesh_calc_modifiers (depsgraph=0x7fffeaf10f08, scene=0x7fffdd473008, ob=0x7fffef515408, inputVertexCos=0x0, useDeform=1,
    need_mapping=false, dataMask=637534729, index=-1, useCache=true, build_shapekey_layers=false, r_deform=0x7fffef515980, r_final=0x7fffef515978)
    at /home/zed/programmering/blender_master/blender/source/blender/blenkernel/intern/DerivedMesh.c:1454
#7  0x0000555557f6e46a in mesh_build_data (depsgraph=0x7fffeaf10f08, scene=0x7fffdd473008, ob=0x7fffef515408, dataMask=637534729,
    build_shapekey_layers=false, need_mapping=false) at /home/zed/programmering/blender_master/blender/source/blender/blenkernel/intern/DerivedMesh.c:2044
#8  0x0000555557f6e83c in makeDerivedMesh (depsgraph=0x7fffeaf10f08, scene=0x7fffdd473008, ob=0x7fffef515408, em=0x0, dataMask=637534729,
    build_shapekey_layers=false) at /home/zed/programmering/blender_master/blender/source/blender/blenkernel/intern/DerivedMesh.c:2160
#9  0x0000555558116588 in BKE_object_handle_data_update (depsgraph=0x7fffeaf10f08, scene=0x7fffdd473008, ob=0x7fffef515408)
    at /home/zed/programmering/blender_master/blender/source/blender/blenkernel/intern/object_update.c:207
#10 0x0000555558116e98 in BKE_object_eval_uber_data (depsgraph=0x7fffeaf10f08, scene=0x7fffdd473008, ob=0x7fffef515408)
    at /home/zed/programmering/blender_master/blender/source/blender/blenkernel/intern/object_update.c:379
#11 0x00005555585645d4 in std::__invoke_impl<void, void (*&)(Depsgraph*, Scene*, Object*), Depsgraph*, Scene*&, Object*&> (__f=
    @0x7fffd3341b60: 0x555558116de8 <BKE_object_eval_uber_data>, __args#0=@0x7fffdb3fdd10: 0x7fffeaf10f08, __args#1=@0x7fffd3341b70: 0x7fffdd473008,
    __args#2=@0x7fffd3341b68: 0x7fffef515408) at /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.0/include/g++-v8/bits/invoke.h:60
#12 0x00005555585630cd in std::__invoke<void (*&)(Depsgraph*, Scene*, Object*), Depsgraph*, Scene*&, Object*&> (__fn=
    @0x7fffd3341b60: 0x555558116de8 <BKE_object_eval_uber_data>, __args#0=@0x7fffdb3fdd10: 0x7fffeaf10f08, __args#1=@0x7fffd3341b70: 0x7fffdd473008,
    __args#2=@0x7fffd3341b68: 0x7fffef515408) at /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.0/include/g++-v8/bits/invoke.h:95
#13 0x000055555856198f in std::_Bind<void (*(std::_Placeholder<1>, Scene*, Object*))(Depsgraph*, Scene*, Object*)>::__call<void, Depsgraph*&&, 0ul, 1ul, 2ul>(std::tuple<Depsgraph*&&>&&, std::_Index_tuple<0ul, 1ul, 2ul>) (this=0x7fffd3341b60, __args=...)
    at /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.0/include/g++-v8/functional:400
#14 0x000055555855f8e8 in std::_Bind<void (*(std::_Placeholder<1>, Scene*, Object*))(Depsgraph*, Scene*, Object*)>::operator()<Depsgraph*, void>(Depsgraph*&&)
    (this=0x7fffd3341b60, __args#0=@0x7fffdb3fdd10: 0x7fffeaf10f08) at /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.0/include/g++-v8/functional:484
#15 0x000055555855c83a in std::_Function_handler<void (Depsgraph*), std::_Bind<void (*(std::_Placeholder<1>, Scene*, Object*))(Depsgraph*, Scene*, Object*)> >::_M_invoke(std::_Any_data const&, Depsgraph*&&) (__functor=..., __args#0=@0x7fffdb3fdd10: 0x7fffeaf10f08)
    at /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.0/include/g++-v8/bits/std_function.h:297
#16 0x00005555585767b3 in std::function<void (Depsgraph*)>::operator()(Depsgraph*) const (this=0x7fffd55459e8, __args#0=0x7fffeaf10f08)
    at /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.0/include/g++-v8/bits/std_function.h:687
#17 0x0000555558575d94 in DEG::deg_task_run_func (pool=0x7fffdd666008, taskdata=0x7fffd5545988, thread_id=2)
    at /home/zed/programmering/blender_master/blender/source/blender/depsgraph/intern/eval/deg_eval.cc:95
#18 0x0000555558533874 in handle_local_queue (thread_id=2, tls=0x7fffdd5bc078)
    at /home/zed/programmering/blender_master/blender/source/blender/blenlib/intern/task.c:421
- 19 task_scheduler_thread_run (thread_p=0x7fffdd5bc068) at /home/zed/programmering/blender_master/blender/source/blender/blenlib/intern/task.c:450
- 20 0x00007ffff639d3c3 in start_thread () from /lib64/libpthread.so.0
#21 0x00007ffff466b3ef in clone () from /lib64/libc.so.6
I'm getting an asset if I leave the subdiv modifier on: `BLI_assert failed: /home/zed/programmering/blender_master/blender/source/blender/modifiers/intern/MOD_skin.c:982, add_poly(), at 'v1 != v2 && v1 != v3 && v1 != v4'` And this segfault if I toggle it off: ``` Thread 25 "blender" received signal SIGSEGV, Segmentation fault. [Switching to Thread 0x7fffdb3fe700 (LWP 19974)] 0x0000555557a3f965 in skin_output_end_nodes (so=0x7fffdb3fd4d0, skin_nodes=0x7fffd7132008, totvert=1480) at /home/zed/programmering/blender_master/blender/source/blender/modifiers/intern/MOD_skin.c:1595 1595 v_order[i] = sn->frames[1].verts[order[i]]; (gdb) bt #0 0x0000555557a3f965 in skin_output_end_nodes (so=0x7fffdb3fd4d0, skin_nodes=0x7fffd7132008, totvert=1480) at /home/zed/programmering/blender_master/blender/source/blender/modifiers/intern/MOD_skin.c:1595 #1 0x0000555557a42cc1 in build_skin (skin_nodes=0x7fffd7132008, totvert=1480, emap=0x7fffd710b008, medge=0x7fffd7105008, totedge=1735, input_dvert=0x0, smd=0x7fffef673708) at /home/zed/programmering/blender_master/blender/source/blender/modifiers/intern/MOD_skin.c:1814 #2 0x0000555557a42eb9 in base_skin (origmesh=0x7fffd701ed08, smd=0x7fffef673708) at /home/zed/programmering/blender_master/blender/source/blender/modifiers/intern/MOD_skin.c:1871 #3 0x0000555557a42fe3 in final_skin (smd=0x7fffef673708, mesh=0x7fffd701ed08) at /home/zed/programmering/blender_master/blender/source/blender/modifiers/intern/MOD_skin.c:1903 #4 0x0000555557a43068 in applyModifier (md=0x7fffef673708, UNUSED_ctx=0x7fffdb3fd760, mesh=0x7fffd701fb08) at /home/zed/programmering/blender_master/blender/source/blender/modifiers/intern/MOD_skin.c:1930 #5 0x00005555580d792c in modwrap_applyModifier (md=0x7fffef673708, ctx=0x7fffdb3fd760, me=0x7fffd701fb08) at /home/zed/programmering/blender_master/blender/source/blender/blenkernel/intern/modifier.c:839 #6 0x0000555557f6bcf5 in mesh_calc_modifiers (depsgraph=0x7fffeaf10f08, scene=0x7fffdd473008, ob=0x7fffef515408, inputVertexCos=0x0, useDeform=1, need_mapping=false, dataMask=637534729, index=-1, useCache=true, build_shapekey_layers=false, r_deform=0x7fffef515980, r_final=0x7fffef515978) at /home/zed/programmering/blender_master/blender/source/blender/blenkernel/intern/DerivedMesh.c:1454 #7 0x0000555557f6e46a in mesh_build_data (depsgraph=0x7fffeaf10f08, scene=0x7fffdd473008, ob=0x7fffef515408, dataMask=637534729, build_shapekey_layers=false, need_mapping=false) at /home/zed/programmering/blender_master/blender/source/blender/blenkernel/intern/DerivedMesh.c:2044 #8 0x0000555557f6e83c in makeDerivedMesh (depsgraph=0x7fffeaf10f08, scene=0x7fffdd473008, ob=0x7fffef515408, em=0x0, dataMask=637534729, build_shapekey_layers=false) at /home/zed/programmering/blender_master/blender/source/blender/blenkernel/intern/DerivedMesh.c:2160 #9 0x0000555558116588 in BKE_object_handle_data_update (depsgraph=0x7fffeaf10f08, scene=0x7fffdd473008, ob=0x7fffef515408) at /home/zed/programmering/blender_master/blender/source/blender/blenkernel/intern/object_update.c:207 #10 0x0000555558116e98 in BKE_object_eval_uber_data (depsgraph=0x7fffeaf10f08, scene=0x7fffdd473008, ob=0x7fffef515408) at /home/zed/programmering/blender_master/blender/source/blender/blenkernel/intern/object_update.c:379 #11 0x00005555585645d4 in std::__invoke_impl<void, void (*&)(Depsgraph*, Scene*, Object*), Depsgraph*, Scene*&, Object*&> (__f= @0x7fffd3341b60: 0x555558116de8 <BKE_object_eval_uber_data>, __args#0=@0x7fffdb3fdd10: 0x7fffeaf10f08, __args#1=@0x7fffd3341b70: 0x7fffdd473008, __args#2=@0x7fffd3341b68: 0x7fffef515408) at /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.0/include/g++-v8/bits/invoke.h:60 #12 0x00005555585630cd in std::__invoke<void (*&)(Depsgraph*, Scene*, Object*), Depsgraph*, Scene*&, Object*&> (__fn= @0x7fffd3341b60: 0x555558116de8 <BKE_object_eval_uber_data>, __args#0=@0x7fffdb3fdd10: 0x7fffeaf10f08, __args#1=@0x7fffd3341b70: 0x7fffdd473008, __args#2=@0x7fffd3341b68: 0x7fffef515408) at /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.0/include/g++-v8/bits/invoke.h:95 #13 0x000055555856198f in std::_Bind<void (*(std::_Placeholder<1>, Scene*, Object*))(Depsgraph*, Scene*, Object*)>::__call<void, Depsgraph*&&, 0ul, 1ul, 2ul>(std::tuple<Depsgraph*&&>&&, std::_Index_tuple<0ul, 1ul, 2ul>) (this=0x7fffd3341b60, __args=...) at /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.0/include/g++-v8/functional:400 #14 0x000055555855f8e8 in std::_Bind<void (*(std::_Placeholder<1>, Scene*, Object*))(Depsgraph*, Scene*, Object*)>::operator()<Depsgraph*, void>(Depsgraph*&&) (this=0x7fffd3341b60, __args#0=@0x7fffdb3fdd10: 0x7fffeaf10f08) at /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.0/include/g++-v8/functional:484 #15 0x000055555855c83a in std::_Function_handler<void (Depsgraph*), std::_Bind<void (*(std::_Placeholder<1>, Scene*, Object*))(Depsgraph*, Scene*, Object*)> >::_M_invoke(std::_Any_data const&, Depsgraph*&&) (__functor=..., __args#0=@0x7fffdb3fdd10: 0x7fffeaf10f08) at /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.0/include/g++-v8/bits/std_function.h:297 #16 0x00005555585767b3 in std::function<void (Depsgraph*)>::operator()(Depsgraph*) const (this=0x7fffd55459e8, __args#0=0x7fffeaf10f08) at /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.0/include/g++-v8/bits/std_function.h:687 #17 0x0000555558575d94 in DEG::deg_task_run_func (pool=0x7fffdd666008, taskdata=0x7fffd5545988, thread_id=2) at /home/zed/programmering/blender_master/blender/source/blender/depsgraph/intern/eval/deg_eval.cc:95 #18 0x0000555558533874 in handle_local_queue (thread_id=2, tls=0x7fffdd5bc078) at /home/zed/programmering/blender_master/blender/source/blender/blenlib/intern/task.c:421 - 19 task_scheduler_thread_run (thread_p=0x7fffdd5bc068) at /home/zed/programmering/blender_master/blender/source/blender/blenlib/intern/task.c:450 - 20 0x00007ffff639d3c3 in start_thread () from /lib64/libpthread.so.0 #21 0x00007ffff466b3ef in clone () from /lib64/libc.so.6 ```
Campbell Barton was unassigned by Dalai Felinto 2019-12-23 16:35:35 +01:00

Added subscriber: @ideasman42

Added subscriber: @ideasman42

Added subscriber: @mont29

Added subscriber: @mont29

There are several issues going on here I think, one being that 'root vertex' skin info is not preserved for start/end caps geometries - maybe because we are using fully evaluated data for those, which iirc do not preserve that layer. This should be quite easy to fix, as modifiers can now request data layers from the depsgraph.

But also looks like the general skinning code is fairly fragile in case of complicated geometry, and tends to crash instead of gracefully failing with a nice error message…

There are several issues going on here I think, one being that 'root vertex' skin info is not preserved for start/end caps geometries - maybe because we are using fully evaluated data for those, which iirc do not preserve that layer. This should be quite easy to fix, as modifiers can now request data layers from the depsgraph. But also looks like the general skinning code is fairly fragile in case of complicated geometry, and tends to crash instead of gracefully failing with a nice error message…

Added subscriber: @panosz

Added subscriber: @panosz

A crash also occurs when I have a Screw modifier in an object, use it as start/end cap in Array modifier and try to change the Steps. This does not happen in 2.82 only in 2.83beta and 2.90
Here is a test model to reproduce the problem. Box.blend

A crash also occurs when I have a Screw modifier in an object, use it as start/end cap in Array modifier and try to change the Steps. This does not happen in 2.82 only in 2.83beta and 2.90 Here is a test model to reproduce the problem. [Box.blend](https://archive.blender.org/developer/F8479777/Box.blend)
Philipp Oeser removed the
Interest
Modeling
label 2023-02-09 15:29:58 +01:00
Member

2.83 apparently already had a fix for Procedural leaves feathered1.blend crashing.

Box.blend needs to be set up a little differently nowdays, see #107353 (apparently now only start caps show, the file uses end caps), in any case it would be good to report this seprtely if this is still an issue.

Will close this as resolved, but of course feel free to comment again if issues persist in fresh builds from https://builder.blender.org/download/daily/ -- we can always reopen in such case.

2.83 apparently already had a fix for `Procedural leaves feathered1.blend` crashing. `Box.blend` needs to be set up a little differently nowdays, see #107353 (apparently now only start caps show, the file uses end caps), in any case it would be good to report this seprtely if this is still an issue. Will close this as resolved, but of course feel free to comment again if issues persist in fresh builds from https://builder.blender.org/download/daily/ -- we can always reopen in such case.
Blender Bot added
Status
Archived
and removed
Status
Confirmed
labels 2024-03-08 11:59:31 +01:00
Philipp Oeser added
Status
Resolved
and removed
Status
Archived
labels 2024-03-08 11:59:41 +01:00
Sign in to join this conversation.
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset Browser
Interest
Asset Browser Project Overview
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
EEVEE & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
No Assignees
6 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#59770
No description provided.