pcbnew crashes on via drag (45 degree mode).
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
KiCad |
Fix Released
|
Unknown
|
Bug Description
Dragging a via in 45 degree mode crashes pcbnew and kicad.
Note: Commit 8c77d31d4d44464
Commit 9e90cb95720b8bd
On a complex board before crashing the program becomes irresponsive for some seconds.
To reproduce the problem: Draw a minimal board or open a project that have more than one layer, (tested also on a "2 resistors and 4 tracks board", dragging one of the vias them some times crashes kicad.
On a more complex board (may be when dragging needs to move more vias and tracks) it is more deterministic and crashes every time.
Crashes when the interactive router settings are in
-shove
-walk-around mode
does not crash in "highlight collisions" mode.
Cheers, Dino.
-------
Application: Pcbnew
Version: (5.1.0-
Libraries:
wxWidgets 3.0.2
libcurl/7.52.1 OpenSSL/1.0.2s zlib/1.2.8 libidn2/0.16 libpsl/0.17.0 (+libidn2/0.16) libssh2/1.7.0 nghttp2/1.18.1 librtmp/2.3
Platform: Linux 4.9.0-8-amd64 x86_64, 64 bit, Little endian, wxGTK
Build Info:
wxWidgets: 3.0.2 (wchar_t,wx containers,
Boost: 1.69.0
OpenCASCADE Community Edition: 6.8.0
Curl: 7.52.1
Compiler: GCC 6.3.0 with C++ ABI 1010
Build settings:
KICAD_
KICAD_
KICAD_
KICAD_
KICAD_
KICAD_
BUILD_
KICAD_
KICAD_
KICAD_SPICE=ON
Changed in kicad: | |
assignee: | nobody → Tomasz Wlostowski (twlostow) |
Changed in kicad: | |
status: | New → Confirmed |
Changed in kicad: | |
importance: | Undecided → Critical |
Changed in kicad: | |
milestone: | none → 6.0.0-rc1 |
Changed in kicad: | |
assignee: | Tomasz Wlostowski (twlostow) → nobody |
importance: | Critical → Unknown |
status: | Expired → Unknown |
Changed in kicad: | |
status: | Unknown → Fix Released |
gdb output on segfault:
Thread 1 "kicad" received signal SIGSEGV, Segmentation fault. :ShoveDraggingV ia(PNS: :VIA*, VECTOR2<int> const&, PNS::VIA**) () SANDBOXKICAD5/ usr/bin/ _pcbnew. kiface :dragShove( VECTOR2< int> const&) () SANDBOXKICAD5/ usr/bin/ _pcbnew. kiface :Move(VECTOR2< int> const&, PNS::ITEM*) () SANDBOXKICAD5/ usr/bin/ _pcbnew. kiface TOOL::InlineDra g(TOOL_ EVENT const&) () SANDBOXKICAD5/ usr/bin/ _pcbnew. kiface ::callerStub( long) () SANDBOXKICAD5/ usr/bin/ _pcbnew. kiface
0xffffffff00000000 in ?? ()
(gdb) backtrace
#0 0xffffffff00000000 in ?? ()
#1 0x00007fffd3364a75 in PNS::SHOVE:
from /home/dinoghi/
#2 0x00007fffd33216c9 in PNS::DRAGGER:
from /home/dinoghi/
#3 0x00007fffd32df6f2 in PNS::ROUTER:
from /home/dinoghi/
#4 0x00007fffd32ef4fc in ROUTER_
from /home/dinoghi/
#5 0x00007fffd3544d90 in COROUTINE<int, TOOL_EVENT const&>
from /home/dinoghi/
#6 0x00005555556c5131 in make_fcontext ()
#7 0x000055555dabcfa0 in ?? ()
#8 0x00007ffff37c233c in __GI___printf_fp_l (fp=0x0,
loc=<error reading variable: Cannot access memory at address 0x34ffffff91>, info=0x0, args=<optimized out>)
at printf_fp.c:629
Backtrace stopped: previous frame inner to this frame (corrupt stack?)
(gdb)