Crash when ctrl-selecting vertices #72444

Closed
opened 2019-12-14 10:39:28 +01:00 by user1 · 15 comments

System Information
Operating system: Linux-4.15.0-66201911071317-generic-x86_64-with-debian-buster-sid 64 Bits
Graphics card: GeForce GT 630/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 390.116

Blender Version
Broken: version: 2.82 (sub 5), branch: master, commit date: 2019-12-13 14:31, hash: 38ad1c4d33
Worked: (optional)

Short description of error
Selecting shortest path causes crash

Exact steps for others to reproduce the error
In the given file, have the vertex in the pink circle selected, then ctrl-LMB the one in the blue circle. It should crash there.
I tried to isolate the bug, but it seems to have a more complex recepy than just "open blender and hit ctrl-LMB".
Also, when i don't try to select the shortest path, but select it one by one with shift-LMB, everything is fine.

ctrl_bug.blend

**System Information** Operating system: Linux-4.15.0-66201911071317-generic-x86_64-with-debian-buster-sid 64 Bits Graphics card: GeForce GT 630/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 390.116 **Blender Version** Broken: version: 2.82 (sub 5), branch: master, commit date: 2019-12-13 14:31, hash: `38ad1c4d33` Worked: (optional) **Short description of error** Selecting shortest path causes crash **Exact steps for others to reproduce the error** In the given file, have the vertex in the pink circle selected, then ctrl-LMB the one in the blue circle. It should crash there. I tried to isolate the bug, but it seems to have a more complex recepy than just "open blender and hit ctrl-LMB". Also, when i don't try to select the shortest path, but select it one by one with shift-LMB, everything is fine. [ctrl_bug.blend](https://archive.blender.org/developer/F8218856/ctrl_bug.blend)
Author

Added subscriber: @user1

Added subscriber: @user1

#72613 was marked as duplicate of this issue

#72613 was marked as duplicate of this issue

#72469 was marked as duplicate of this issue

#72469 was marked as duplicate of this issue

Added subscriber: @Stan_Pancakes

Added subscriber: @Stan_Pancakes

File-agnostic reproduction:

  1. Load default scene
  2. Enter edit mode on the cube and box-select one vertex. Don't click on it, don't make it active, the vertex should be selected but not active.
  3. Enable x-ray
  4. Ctrl-click another vertex

Or:

  1. Load default scene
  2. Enter edit mode on the cube and deselect all
  3. Enable x-ray
  4. Ctrl-click far enough away from any vertices and other objects

@user1 it's also worth noting that with such selection as in the file, pick shortest path wouldn't work anyway, you need an active vertex to start the path.

File-agnostic reproduction: 1. Load default scene 2. Enter edit mode on the cube and **box-select** one vertex. Don't click on it, don't make it active, the vertex should be selected but not active. 3. Enable x-ray 4. Ctrl-click another vertex Or: 1. Load default scene 2. Enter edit mode on the cube and deselect all 3. Enable x-ray 4. Ctrl-click far enough away from any vertices and other objects @user1 it's also worth noting that with such selection as in the file, pick shortest path wouldn't work anyway, you need an active vertex to start the path.

Added subscriber: @rjg

Added subscriber: @rjg

I can reproduce this issue (f8cdc5ac4c), seems related to the overlay refactoring (9516921c05).

GPU_texture_bound_number(GPUTexture * tex) Line 1581
bind_texture(GPUTexture * tex, unsigned char bind_type) Line 766
draw_update_uniforms(DRWShadingGroup * shgroup, DRWCommandsState * state, bool * use_tfeedback) Line 956
draw_shgroup(DRWShadingGroup * shgroup, <unnamed-enum-DRW_STATE_WRITE_DEPTH> pass_state) Line 1256
drw_draw_pass_ex(DRWPass * pass, DRWShadingGroup * start_group, DRWShadingGroup * end_group) Line 1406
DRW_draw_pass(DRWPass * pass) Line 1456
OVERLAY_edit_mesh_draw(OVERLAY_Data * vedata) Line 388
OVERLAY_draw_scene(void * vedata) Line 419
drw_engines_draw_scene() Line 1218
DRW_draw_select_loop(Depsgraph * depsgraph, ARegion * ar, View3D * v3d, bool UNUSED_use_obedit_skip, bool draw_surface, bool UNUSED_use_nearest, const rcti * rect, bool(*)(eDRWSelectStage, void *) select_pass_fn, void * select_pass_user_data, bool(*)(Object *, void *) object_filter_fn, void * object_filter_user_data) Line 2320
view3d_opengl_select(ViewContext * vc, unsigned int * buffer, unsigned int bufsize, const rcti * input, <unnamed-enum-VIEW3D_SELECT_ALL> select_mode, <unnamed-enum-VIEW3D_SELECT_FILTER_NOP> select_filter) Line 1160
mixed_bones_object_selectbuffer(ViewContext * vc, unsigned int * buffer, const int * mval, <unnamed-enum-VIEW3D_SELECT_FILTER_NOP> select_filter, bool do_nearest) Line 1684
mixed_bones_object_selectbuffer_extended(ViewContext * vc, unsigned int * buffer, const int * mval, <unnamed-enum-VIEW3D_SELECT_FILTER_NOP> select_filter, bool use_cycle, bool enumerate, bool * r_do_nearest) Line 1783
ed_object_select_pick(bContext * C, const int * mval, bool extend, bool deselect, bool toggle, bool obcenter, bool enumerate, bool object) Line 2061
view3d_select_exec(bContext * C, wmOperator * op) Line 2421
view3d_select_invoke(bContext * C, wmOperator * op, const wmEvent * event) Line 2461
wm_operator_invoke(bContext * C, wmOperatorType * ot, wmEvent * event, PointerRNA * properties, ReportList * reports, const bool poll_only, bool use_last_properties) Line 1441
wm_handler_operator_call(bContext * C, ListBase * handlers, wmEventHandler * handler_base, wmEvent * event, PointerRNA * properties) Line 2281
wm_handlers_do_keymap_with_keymap_handler(bContext * C, wmEvent * event, ListBase * handlers, wmEventHandler_Keymap * handler, wmKeyMap * keymap, const bool do_debug_handler) Line 2594
wm_handlers_do_intern(bContext * C, wmEvent * event, ListBase * handlers) Line 2731
wm_handlers_do(bContext * C, wmEvent * event, ListBase * handlers) Line 3078
wm_event_do_handlers(bContext * C) Line 3446
WM_main(bContext * C) Line 420
main(int argc, const unsigned char * * UNUSED_argv_c) Line 519

@Stan_Pancakes Thanks for the concise instructions.

I can reproduce this issue (f8cdc5ac4c), seems related to the overlay refactoring (9516921c05). ``` GPU_texture_bound_number(GPUTexture * tex) Line 1581 bind_texture(GPUTexture * tex, unsigned char bind_type) Line 766 draw_update_uniforms(DRWShadingGroup * shgroup, DRWCommandsState * state, bool * use_tfeedback) Line 956 draw_shgroup(DRWShadingGroup * shgroup, <unnamed-enum-DRW_STATE_WRITE_DEPTH> pass_state) Line 1256 drw_draw_pass_ex(DRWPass * pass, DRWShadingGroup * start_group, DRWShadingGroup * end_group) Line 1406 DRW_draw_pass(DRWPass * pass) Line 1456 OVERLAY_edit_mesh_draw(OVERLAY_Data * vedata) Line 388 OVERLAY_draw_scene(void * vedata) Line 419 drw_engines_draw_scene() Line 1218 DRW_draw_select_loop(Depsgraph * depsgraph, ARegion * ar, View3D * v3d, bool UNUSED_use_obedit_skip, bool draw_surface, bool UNUSED_use_nearest, const rcti * rect, bool(*)(eDRWSelectStage, void *) select_pass_fn, void * select_pass_user_data, bool(*)(Object *, void *) object_filter_fn, void * object_filter_user_data) Line 2320 view3d_opengl_select(ViewContext * vc, unsigned int * buffer, unsigned int bufsize, const rcti * input, <unnamed-enum-VIEW3D_SELECT_ALL> select_mode, <unnamed-enum-VIEW3D_SELECT_FILTER_NOP> select_filter) Line 1160 mixed_bones_object_selectbuffer(ViewContext * vc, unsigned int * buffer, const int * mval, <unnamed-enum-VIEW3D_SELECT_FILTER_NOP> select_filter, bool do_nearest) Line 1684 mixed_bones_object_selectbuffer_extended(ViewContext * vc, unsigned int * buffer, const int * mval, <unnamed-enum-VIEW3D_SELECT_FILTER_NOP> select_filter, bool use_cycle, bool enumerate, bool * r_do_nearest) Line 1783 ed_object_select_pick(bContext * C, const int * mval, bool extend, bool deselect, bool toggle, bool obcenter, bool enumerate, bool object) Line 2061 view3d_select_exec(bContext * C, wmOperator * op) Line 2421 view3d_select_invoke(bContext * C, wmOperator * op, const wmEvent * event) Line 2461 wm_operator_invoke(bContext * C, wmOperatorType * ot, wmEvent * event, PointerRNA * properties, ReportList * reports, const bool poll_only, bool use_last_properties) Line 1441 wm_handler_operator_call(bContext * C, ListBase * handlers, wmEventHandler * handler_base, wmEvent * event, PointerRNA * properties) Line 2281 wm_handlers_do_keymap_with_keymap_handler(bContext * C, wmEvent * event, ListBase * handlers, wmEventHandler_Keymap * handler, wmKeyMap * keymap, const bool do_debug_handler) Line 2594 wm_handlers_do_intern(bContext * C, wmEvent * event, ListBase * handlers) Line 2731 wm_handlers_do(bContext * C, wmEvent * event, ListBase * handlers) Line 3078 wm_event_do_handlers(bContext * C) Line 3446 WM_main(bContext * C) Line 420 main(int argc, const unsigned char * * UNUSED_argv_c) Line 519 ``` @Stan_Pancakes Thanks for the concise instructions.
Clément Foucault was assigned by Robert Guetzkow 2019-12-15 20:01:07 +01:00

Added subscriber: @vademenev

Added subscriber: @vademenev
Member

Added subscribers: @Diego3D, @lichtwerk

Added subscribers: @Diego3D, @lichtwerk

The crash only seems to be triggered with X-Ray enabled and when there is no active vertex in the selection.

As Stanislav mentioned, if the only vertex selected is active, the crash won't happen.
So for instance in the sample file provided by user1 if you:

  1. disable X-ray view,
  2. make the vertex in the pink circle active,
  3. enable x-ray
  4. CTRL click the vertex in the blue circle
    There is no crash, and you can keep CTRL clicking vertices. But as soon as you click on anything that is not a vertex, the crash will be triggered.
    And if then you deselect a vertex, any subsequent CTRL L click will trigger the crash since there will be no active vertex in the selection.
    Unless, you temporarily disable x-ray and make a vertex active. Then you can keep CTRL clicking vertices.

I confirmed this in e0cd5b980f as well.

System: Ubuntu 19.10

The crash only seems to be triggered with X-Ray enabled and when there is no active vertex in the selection. As Stanislav mentioned, if the only vertex selected is active, the crash won't happen. So for instance in the sample file provided by user1 if you: 1. disable X-ray view, 2. make the vertex in the pink circle active, 3. enable x-ray 4. CTRL click the vertex in the blue circle There is no crash, and you can keep CTRL clicking vertices. But as soon as you click on anything that is not a vertex, the crash will be triggered. And if then you deselect a vertex, any subsequent CTRL L click will trigger the crash since there will be no active vertex in the selection. Unless, you temporarily disable x-ray and make a vertex active. Then you can keep CTRL clicking vertices. I confirmed this in e0cd5b980fc5 as well. System: Ubuntu 19.10

Added subscriber: @AxelMening-4

Added subscriber: @AxelMening-4

I confirm
Broken: version: 2.82 (sub 6), branch: master, commit date: 2019-12-17 23:52, hash: e0cd5b980f
crush (1).gif
Enable X-Ray mode.
I select two vertices and press F to fill the grid with polygons. Then, when it is filled, the last two vertices remain selected, I press the ctrl+click on the vertex to select the shortest path between the selected polygons and the one I click on.
Blender crashes.

I confirm Broken: version: 2.82 (sub 6), branch: master, commit date: 2019-12-17 23:52, hash: `e0cd5b980f` ![crush (1).gif](https://archive.blender.org/developer/F8232157/crush__1_.gif) Enable X-Ray mode. I select two vertices and press F to fill the grid with polygons. Then, when it is filled, the last two vertices remain selected, I press the ctrl+click on the vertex to select the shortest path between the selected polygons and the one I click on. Blender crashes.

Added subscriber: @JosephMasaki

Added subscriber: @JosephMasaki

Changed status from 'Confirmed' to: 'Resolved'

Changed status from 'Confirmed' to: 'Resolved'

I think this was fixed by 84825e4b50 since I cannot reproduce anymore. Feel free to reopen if it's not fixed.

I think this was fixed by 84825e4b50c1 since I cannot reproduce anymore. Feel free to reopen if it's not fixed.
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
9 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#72444
No description provided.