OpenGL Crash - ESC when moving Line

Bug #1606332 reported by Justin Partain
26
This bug affects 3 people
Affects Status Importance Assigned to Milestone
KiCad
Fix Released
High
Maciej Suminski

Bug Description

KiCad crashes when moving a drawn line (silkscreen, board edge, fab, etc.) and pressing the ESC key. Seems to only happen in OpenGL mode, but within Footprint Editor as well as PCBNew.

This version of KiCad was downloaded from ppa:js-reynaud/ppa-kicad.

-----------

Application: kicad
Version: 4.1.0-alpha+201607250105+6992~46~ubuntu16.04.1-product, release build
Libraries: wxWidgets 3.0.2
           libcurl/7.47.0 OpenSSL/1.0.2g zlib/1.2.8 libidn/1.32 librtmp/2.3
Platform: Linux 4.4.0-31-generic x86_64, 64 bit, Little endian, wxGTK
- Build Info -
wxWidgets: 3.0.2 (wchar_t,wx containers,compatible with 2.8)
Boost: 1.58.0
Curl: 7.47.0
KiCad - Compiler: GCC 5.4.0 with C++ ABI 1009
        Settings: USE_WX_GRAPHICS_CONTEXT=OFF
                  USE_WX_OVERLAY=OFF
                  KICAD_SCRIPTING=ON
                  KICAD_SCRIPTING_MODULES=ON
                  KICAD_SCRIPTING_WXPYTHON=ON
                  USE_FP_LIB_TABLE=HARD_CODED_ON
                  BUILD_GITHUB_PLUGIN=ON

Tags: cern gal pcbnew

Related branches

Revision history for this message
PCB Wiz (1-pcb-wiz) wrote :

Move-Segment via M works fine here, on OpenGL, as does drag-edge of Fill polyline.
ESC simply releases the operation, as expected.
Win64 build, June 19th.

Revision history for this message
Justin Partain (justinwpartain1) wrote :

I've just tested and seen the same crash on Windows.

--------

Application: kicad
Version: (2016-07-24 BZR 6992, Git 9c5e872)-product, release build
Libraries: wxWidgets 3.0.2
           libcurl/7.46.0 OpenSSL/1.0.2d zlib/1.2.8 libidn/1.32 libssh2/1.6.0 librtmp/2.3
Platform: Windows 7 (build 7601, Service Pack 1), 64-bit edition, 64 bit, Little endian, wxMSW
- Build Info -
wxWidgets: 3.0.2 (wchar_t,wx containers,compatible with 2.8)
Boost: 1.57.0
Curl: 7.46.0
KiCad - Compiler: GCC 5.2.0 with C++ ABI 1009
        Settings: USE_WX_GRAPHICS_CONTEXT=OFF
                  USE_WX_OVERLAY=OFF
                  KICAD_SCRIPTING=ON
                  KICAD_SCRIPTING_MODULES=ON
                  KICAD_SCRIPTING_WXPYTHON=ON
                  USE_FP_LIB_TABLE=HARD_CODED_ON
                  BUILD_GITHUB_PLUGIN=ON

Revision history for this message
Chris Pavlina (pavlina-chris) wrote :

I can confirm here. For anyone who can't repro this, make sure you hit escape _while moving the line_.

Changed in kicad:
status: New → Confirmed
importance: Critical → High
tags: added: cern gal
removed: footprint-editor
Revision history for this message
Chris Pavlina (pavlina-chris) wrote :
Download full text (5.9 KiB)

Trace:

(gdb) bt full
#0 0x00007fffe641e84c in TOOL_MANAGER::dispatchInternal (this=0x3aa3860, aEvent=...) at /home/cmp/git/kicad/common/tool/tool_manager.cpp:499
        curIt = 56224096
        st = 0x0
        it = 0
#1 0x00007fffe641dbdc in TOOL_MANAGER::ProcessEvent (this=0x3aa3860, aEvent=...) at /home/cmp/git/kicad/common/tool/tool_manager.cpp:678
No locals.
#2 0x00007fffe587492e in PCB_EDIT_FRAME::RestoreCopyFromUndoList (this=0x1fb9000, aEvent=...) at /home/cmp/git/kicad/pcbnew/board_undo_redo.cpp:691
        event = {m_category = TC_MESSAGE, m_actions = TA_UNDO_REDO, m_scope = AS_GLOBAL, m_mouseDelta = {<VECTOR2_TRAITS<double>> = {<No data fields>}, x = 0, y = 0}, m_mousePos = {<VECTOR2_TRAITS<double>> = {<No data fields>}, x = 0,
            y = 0}, m_mouseDragOrigin = {<VECTOR2_TRAITS<double>> = {<No data fields>}, x = 0, y = 0}, m_mouseButtons = 0, m_keyCode = 0, m_modifiers = 0, m_param = 0x0,
          m_commandId = {<boost::optional_detail::optional_base<int>> = {<boost::optional_detail::optional_tag> = {<No data fields>}, m_initialized = false, m_storage = {dummy_ = {data = "\000\000\000",
                  aligner_ = {<No data fields>}}}}, <No data fields>}, m_commandStr = {<boost::optional_detail::optional_base<std::__cxx11::basic_string<char> >> = {<boost::optional_detail::optional_tag> = {<No data fields>},
              m_initialized = false, m_storage = {dummy_ = {data = "X\270\243\003\000\000\000\000\240T{\002\000\000\000\000\060O{\002\000\000\000\000\\\030\270\345\377\177\000", aligner_ = {<No data fields>}}}}, <No data fields>}}
        List = 0x27b4f10
#3 0x00007fffe5bb22eb in EDIT_TOOL::Main (this=0x3ad7f60, aEvent=...) at /home/cmp/git/kicad/pcbnew/tools/edit_tool.cpp:327
        dummy = <incomplete type>
        controls = 0x379a440
        editFrame = 0x1fb9000
        originalCursorPos = {<VECTOR2_TRAITS<int>> = {static ECOORD_MAX = 9223372036854775807, static ECOORD_MIN = -9223372036854775808}, x = -32367, y = 32818163}
        selection = @0x3ab8448: {items = {m_Status = UR_UNSPECIFIED, m_TransformPoint = {x = 0, y = 0}, m_ItemsList = std::vector of length 0, capacity 1}, group = 0x3ab8c00}
        unselect = false
        restore = true
        lockOverride = false
        totalMovement = {x = -500000, y = -1077282704}
        grid = {m_anchors = std::vector of length 0, capacity 16, m_frame = 0x1fb9000, m_auxAxis = {<boost::optional_detail::optional_base<VECTOR2<int> >> = {<boost::optional_detail::optional_tag> = {<No data fields>},
              m_initialized = true, m_storage = {dummy_ = {data = "\000\000\000\000@KL", aligner_ = {<No data fields>}}}}, <No data fields>}, m_diagonalAuxAxesEnable = true}
        evt = {<boost::optional_detail::optional_base<TOOL_EVENT>> = {<boost::optional_detail::optional_tag> = {<No data fields>}, m_initialized = true, m_storage = {dummy_ = {
                data = "\004\000\000\000\000 \000\000\003\000\000\000\377\177", '\000' <repeats 62 times>, "\001", '\000' <repeats 27 times>, "pR\221\003\000\000\000\000\026\000\000\000\000\000\000\000\026\000\000\000\000\000\000\000\300\220;\003\000\000\000", aligner_ = {<No data fields>}}}}, <No data fields>}
        ratsne...

Read more...

Revision history for this message
PCB Wiz (1-pcb-wiz) wrote :

"For anyone who can't repro this, make sure you hit escape _while moving the line_."
I've checked again, and my Win64 June 19 build is fine, shifting the mouse and hitting ESC is ok.
The other builds reporting are newer, this could be a recent artifact ?

Revision history for this message
Justin Partain (justinwpartain1) wrote :

Recently installed another nightly, this is seemingly fixed in this version:

Application: kicad_nightly
Version: (2016-08-01 BZR 7000, Git e6129ca)-product, release build
Libraries: wxWidgets 3.0.2
           libcurl/7.46.0 OpenSSL/1.0.2d zlib/1.2.8 libidn/1.32 libssh2/1.6.0 librtmp/2.3
Platform: Windows 7 (build 7601, Service Pack 1), 64-bit edition, 64 bit, Little endian, wxMSW
- Build Info -
wxWidgets: 3.0.2 (wchar_t,wx containers,compatible with 2.8)
Boost: 1.57.0
Curl: 7.46.0
KiCad - Compiler: GCC 5.2.0 with C++ ABI 1009
        Settings: USE_WX_GRAPHICS_CONTEXT=OFF
                  USE_WX_OVERLAY=OFF
                  KICAD_SCRIPTING=ON
                  KICAD_SCRIPTING_MODULES=ON
                  KICAD_SCRIPTING_WXPYTHON=ON
                  USE_FP_LIB_TABLE=HARD_CODED_ON
                  BUILD_GITHUB_PLUGIN=ON

Revision history for this message
Maciej Suminski (orsonmmz) wrote :

It is likely to be fixed by commits 7001 & 7002, but anyway I am glad it works now.

Changed in kicad:
status: Confirmed → Fix Committed
Revision history for this message
Wayne Stambaugh (stambaughw) wrote :

I think we were a bit premature on calling this fixed. I am still seeing this issue 100% of the time on both 32 (release) and 64 (debug) bit builds on msys2 running on 64 bit windows 7 pro. All you have to do is keep moving the mouse after hitting the escape key to drop the moving line and it will segfault.

Revision history for this message
Maciej Suminski (orsonmmz) wrote :

Changed to 'Confirmed' due to Wayne's comment.

Changed in kicad:
status: Fix Committed → Confirmed
Revision history for this message
Cezary Zieliński (olek13) wrote :

The same Pcbnew crash is observed when moving dimension of fill zone (BZR 7005 or earlier, Windows 10, OpenGL mode).

Revision history for this message
Cezary Zieliński (olek13) wrote :

Errata
Should be: ..."when moving dimension OR fill zone"...

Changed in kicad:
assignee: nobody → Maciej Sumiński (orsonmmz)
Changed in kicad:
status: Confirmed → Fix Committed
Revision history for this message
Justin Partain (justinwpartain1) wrote :

This bug now exists in 4.0.3, at least in the footprint editor.

Changed in kicad:
status: Fix Committed → Confirmed
Revision history for this message
Maciej Suminski (orsonmmz) wrote :

It is already fixed in both stable & product branches. There is 4.0.4 in preparation, but we have no way to fix it in 4.0.3. It is marked as 'Fix Committed' to tell everyone that we do not have to work on the problem anymore.

Changed in kicad:
status: Confirmed → Fix Committed
Changed in kicad:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.