Pcbnew hangs in infinite loop loading a board with complex Edge.Cuts layer
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
KiCad |
Fix Released
|
Undecided
|
Tomasz Wlostowski |
Bug Description
Application: pcbnew
Version: (5.0.0-
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-62-generic x86_64, 64 bit, Little endian, wxGTK
Build Info:
wxWidgets: 3.0.2 (wchar_t,wx containers,
Boost: 1.58.0
Curl: 7.47.0
Compiler: GCC 5.4.0 with C++ ABI 1009
Build settings:
USE_
USE_
KICAD_
KICAD_
KICAD_
KICAD_
BUILD_
KICAD_
KICAD_SPICE=OFF
For my testing I ran pcbnew stand alone, outside of project manager, but I don't think this matters.
During a board load, TOOL_MANAGER:
PNS::TOOL_
PNS::ROUTER:
does not return.
The problem board is created empty, then by adding Edge.Cuts graphics via the DXF import using the attached *.dxf file. Save the board and then attempt to load it from disk. This fails by hanging.
Additionally, I found recently that I cannot exit pcbnew, File -> Exit hangs also, if the most recent activity is the DXF import into an empty board document tree.
I believe these two failures may involve the same code, but I did not break into the exit bug to verify.
I believe this is a relatively new bug. I was able to save and exit using a September-2017 build.
Changed in kicad: | |
assignee: | nobody → Tomasz Wlostowski (twlostow) |
tags: | added: pcbnew |
Changed in kicad: | |
status: | New → Confirmed |
Changed in kicad: | |
status: | Fix Committed → Fix Released |
Hi Dick,
It's not an infinite loop, it's the P&S router getting stuck with far too much geometry data on the Edge.Cuts layer. Most of this comes from segment-based arc approximation (we don't have yet real arcs support in the DRC/P&S).
The DXF file you attached contains much more than the board's outline (there are texts, pads and lots of other stuff).
The only solution I see right now is an error/timeout message suggesting to simplify the drawings on the Edge.Cuts layer.
Tom