Pcbnew: fill then move zone in modern canvases causes segfault
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
KiCad |
Fix Released
|
Critical
|
Jeff Young |
Bug Description
I just stumbled across this beauty while testing another bug fix. The following steps cause the 5.1 branch of Pcbnew to segfault:
1. Open any board that has a filled zone on a copper layer.
2. Refill all zones (B hotkey).
3. Select any zone and move it (M hotkey).
4. Hitting the escape key to deselect the zone will cause a segfault.
This happens with both the accelerated and fallback modern canvases but not the legacy canvas. It does not appear to affect the master branch. What's really peculiar is that the gdb back trace complains about something being optimized out of the WX_PROGRESS_
Application: Pcbnew
Version: (5.1.2-
Libraries:
wxWidgets 3.0.4
libcurl/7.65.1 OpenSSL/1.1.1c (Schannel) zlib/1.2.11 brotli/1.0.7 libidn2/2.2.0 libpsl/0.21.0 (+libidn2/2.1.1) nghttp2/1.39.1
Platform: Windows 8 (build 9200), 64-bit edition, 64 bit, Little endian, wxMSW
Build Info:
wxWidgets: 3.0.4 (wchar_t,wx containers,
Boost: 1.70.0
OpenCASCADE Community Edition: 6.9.1
Curl: 7.65.1
Compiler: GCC 9.1.0 with C++ ABI 1013
Build settings:
USE_
USE_
KICAD_
KICAD_
KICAD_
KICAD_
KICAD_
KICAD_
BUILD_
KICAD_
KICAD_
KICAD_SPICE=ON
(gdb) bt 20
#0 0x000000006d0cd392 in ?? ()
from E:\msys64\
#1 0x000000006d0cd6e9 in ?? ()
from E:\msys64\
#2 0x000000006d0ec8df in ?? ()
from E:\msys64\
#3 0x000000006d263ad7 in ?? ()
from E:\msys64\
#4 0x00000000806e8547 in WX_PROGRESS_
this=
at E:/msys64/
#5 0x00000000806e8585 in WX_PROGRESS_
this=
at E:/msys64/
#6 0x000000006d26fb1d in ?? ()
from E:\msys64\
#7 0x00000000806e8547 in WX_PROGRESS_
this=
at E:/msys64/
#8 0x00000000806e8585 in WX_PROGRESS_
this=
at E:/msys64/
#9 0x000000006d26fb1d in ?? ()
from E:\msys64\
#10 0x00000000806e8547 in WX_PROGRESS_
this=
at E:/msys64/
#11 0x00000000806e8585 in WX_PROGRESS_
this=
at E:/msys64/
#12 0x000000006d26fb1d in ?? ()
from E:\msys64\
#13 0x00000000806e8547 in WX_PROGRESS_
this=
at E:/msys64/
#14 0x00000000806e8585 in WX_PROGRESS_
this=
at E:/msys64/
#15 0x000000006d26fb1d in ?? ()
from E:\msys64\
#16 0x00000000806e8547 in WX_PROGRESS_
this=
at E:/msys64/
#17 0x00000000806e8585 in WX_PROGRESS_
this=
at E:/msys64/
#18 0x000000006d26fb1d in ?? ()
from E:\msys64\
#19 0x00000000806e8547 in WX_PROGRESS_
this=
at E:/msys64/
tags: | added: pcbnew |
Changed in kicad: | |
status: | Fix Committed → In Progress |
Changed in kicad: | |
status: | In Progress → Fix Committed |
Changed in kicad: | |
status: | Fix Committed → Fix Released |
I cannot recreate this on linux
Application: Pcbnew 171-g761725265- dirty), debug build compatible with 2.8) GTK+ 3.24
Version: (5.1.2-
Libraries:
wxWidgets 3.0.4
libcurl/7.64.0 OpenSSL/1.1.1c zlib/1.2.11 libidn2/2.0.5 libpsl/0.20.2 (+libidn2/2.0.5) libssh2/1.8.0 nghttp2/1.36.0 librtmp/2.3
Platform: Linux 4.19.0-5-amd64 x86_64, 64 bit, Little endian, wxGTK
Build Info:
wxWidgets: 3.0.4 (wchar_t,wx containers,
Boost: 1.67.0
OpenCASCADE Community Edition: 6.9.1
Curl: 7.64.0
Compiler: GCC 8.3.0 with C++ ABI 1013
Build settings: WX_GRAPHICS_ CONTEXT= OFF WX_OVERLAY= ON SCRIPTING= ON SCRIPTING_ MODULES= ON SCRIPTING_ PYTHON3= ON SCRIPTING_ WXPYTHON= ON SCRIPTING_ WXPYTHON_ PHOENIX= ON SCRIPTING_ ACTION_ MENU=ON GITHUB_ PLUGIN= ON USE_OCE= ON USE_OCC= OFF
USE_
USE_
KICAD_
KICAD_
KICAD_
KICAD_
KICAD_
KICAD_
BUILD_
KICAD_
KICAD_
KICAD_SPICE=ON