Pcbnew crash at moving via

Bug #1604841 reported by Diego
14
This bug affects 2 people
Affects Status Importance Assigned to Milestone
KiCad
Fix Released
High
Unassigned

Bug Description

Hello team! I'm currently at the design of a 12 layer board. This board has a lot of differential pairs.
When in OpenGL mode, if I click a via and try to drag it, pcbnew closes.

Also, I think there is a bug by following this steps:
Start a new differential pair in any via of the FMC connector.
When started, change the sizes to 3.5 mils track width and 7.5 mils spacing (it changes successfully).
Cancel the differential pair with esc key.
Try to start again the differential pair, and kicad will give the error that it's violating the design rules.

In this kicad compilation it's always using about 56% of the processor when inactive. It feels more slow than the 4.02 stable version.

Help please! :)

Here is the application information:

Application: kicad
Version: (2016-07-19 BZR 6986)-product, release build
Libraries: wxWidgets 3.0.2
           libcurl/7.38.0 OpenSSL/1.0.1t zlib/1.2.8 libidn/1.29 libssh2/1.4.3 librtmp/2.3
Platform: Linux 3.16.0-4-amd64 x86_64, 64 bit, Little endian, wxGTK
- Build Info -
wxWidgets: 3.0.2 (wchar_t,wx containers,compatible with 2.8)
Boost: 1.55.0
Curl: 7.38.0
KiCad - Compiler: GCC 4.9.2 with C++ ABI 1002
        Settings: USE_WX_GRAPHICS_CONTEXT=OFF
                  USE_WX_OVERLAY=OFF
                  KICAD_SCRIPTING=OFF
                  KICAD_SCRIPTING_MODULES=OFF
                  KICAD_SCRIPTING_WXPYTHON=OFF
                  USE_FP_LIB_TABLE=HARD_CODED_ON
                  BUILD_GITHUB_PLUGIN=ON

Revision history for this message
Diego (alamon) wrote :
Diego (alamon)
description: updated
Revision history for this message
Novak Tamas (novak-7) wrote :

Go to pcbnew - Design rules part and check both Net classes and Global design rules.

In your .kicad_pcb file the minimum track width is set to (trace_min 0.1016)

When you start a new track, the default setting is this (4 mil). KiCad probably allows you to set width on-the-fly to 3.5 mils, and you will be informed on DRC violation only next time when you start a new track. (You shouldn't be allowed to set 3.5mil any time)

Revision history for this message
Danielius (danielius-bil) wrote :

Hi

Same here. Excepts pcbnew always crashes not only on via move, but also on track move.
No difference if change design rules.

Versions:

Application: kicad
Version: 4.1.0-alpha+201607220717+6991~46~ubuntu14.04.1-product, release build
Libraries: wxWidgets 3.0.2
           libcurl/7.35.0 OpenSSL/1.0.1f zlib/1.2.8 libidn/1.28 librtmp/2.3
Platform: Linux 3.13.0-92-generic x86_64, 64 bit, Little endian, wxGTK
- Build Info -
wxWidgets: 3.0.2 (wchar_t,wx containers,compatible with 2.8)
Boost: 1.54.0
Curl: 7.35.0
KiCad - Compiler: GCC 4.8.4 with C++ ABI 1002
        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
Danielius (danielius-bil) wrote :

Update.

It only crashes on via or track move if done like this:
select via or track with mouse, then try dragging it.

When trying to move using 'm' keyboard shortcut it does not crash.

Revision history for this message
Nick Østergaard (nickoe) wrote :

Can you provide a backtrace?

Just do:
1. gdb pcbnew
2. type 'run' in the gdb console
3. Select your board
4. Reproduce the segfault (the window will freeze and a prompt will reappar in gdb)
5. Type 'bt'
6. Copy the trace in a file and attach to the bug thread

Revision history for this message
Danielius (danielius-bil) wrote :

Hi
Just tried.

I get this in gdb on mouse track move attempt:

Program received signal SIGSEGV, Segmentation fault.
0x0000000003639b70 in ?? ()
(gdb) bt
#0 0x0000000003639b70 in ?? ()
#1 0x00007fffe9115662 in ?? () from /usr/bin/_pcbnew.kiface
#2 0x00007fffe368a70e in make_fcontext ()
   from /usr/lib/x86_64-linux-gnu/libboost_context.so.1.54.0
#3 0x0000000000000000 in ?? ()

same on via mouse move:

Program received signal SIGSEGV, Segmentation fault.
0x00000000037626f0 in ?? ()
(gdb) bt
#0 0x00000000037626f0 in ?? ()
#1 0x00007fffe9115662 in ?? () from /usr/bin/_pcbnew.kiface
#2 0x00007fffe368a70e in make_fcontext ()
   from /usr/lib/x86_64-linux-gnu/libboost_context.so.1.54.0
#3 0x0000000000000000 in ?? ()

Revision history for this message
Danielius (danielius-bil) wrote :

Can't get more info even with kicad debug symbols

Program received signal SIGSEGV, Segmentation fault.
0x00000000023c8a00 in ?? ()
(gdb) bt
#0 0x00000000023c8a00 in ?? ()
#1 0x00007fffe9115cf2 in operator() (__args#0=..., this=0x37a0930)
    at /usr/include/c++/4.8/functional:2471
#2 COROUTINE<int, TOOL_EVENT const&>::callerStub (aData=58329392)
    at /build/kicad-apgYXA/kicad-4.1.0/kicad/include/tool/coroutine.h:271
#3 0x00007fffe368a70e in make_fcontext ()
   from /usr/lib/x86_64-linux-gnu/libboost_context.so.1.54.0
#4 0x0000000000000000 in ?? ()

Maybe I am doing something wrong?

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

I'm marking this confirmed. I get very similar crashes on occasion from pcbnew - it's hard for me to find something that reproduces them completely, though they're much more common on more complicated boards like yours.

Changed in kicad:
status: New → Confirmed
importance: Undecided → High
Revision history for this message
Chris Pavlina (pavlina-chris) wrote :

It is important to note that you have a pre-1.61 Boost, and Boost made changes to the context library then - I can't reproduce the exact problem with your exact board and a post-1.61 Boost. Hopefully someone familiar with the Boost changes can comment?

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

It should be fixed in revision 7002, please verify.

Changed in kicad:
status: Confirmed → Fix Committed
Revision history for this message
Diego (alamon) wrote :

It's working! Thanks!!

Revision history for this message
Yannis (orions-belts1) wrote :

Hi,
i still get some occasional segfault when trying to move via in shove/walkaround mode. I had no problem when i used only "highlight collisions". Unfortunately it is not reproducible, it seems to depend on the optimizer and the surrounding tracks so not really the same bug(?)

Thanks,

Application: kicad
Version: 201609150817+7155~55~ubuntu16.04.1-, 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-36-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
                  BUILD_GITHUB_PLUGIN=ON
                  KICAD_USE_SCH_IO_MANAGER=OFF
                  KICAD_USE_OCE=ON

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.

Other bug subscribers

Remote bug watches

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