Kicad 5.1 crashes often

Hi I have often problems with co-designing PCB and Schematics while changing something in PCB or in Schematics the tool often crashes and closes using Windows10 when I make a change and try to save the design. Most of the times the design is saved correctly and the tool crashes afterwards.
But to be sure, I always zip the whole project and save it with a different name in order to be sure that I can restore a crashed session to the last known good state.
It feels like using word for windows95 where it was whise to save all the time, as it could happen that people loose their edits because of crashing software.
The Design was 2 layers 100x160mm using some standard parts and maybe some pcb traces were off-grid or drawn with finer grid than others.
Also the design involved library parts imported from an older eagle design and parts imported from eagle libs.

Are there others who experienced similar problems or do I have just bad luck because of some wired drivers or libraries in my windows 10?
How are the experiences regarding sudden crashes in the tool out there?

Edit: The crash occured mostly when trying to save the design by pressing the save button. It mostly saved correct files and crashed afterwards, nice feature not to destroy data :slightly_smiling_face:
Just to let you know.
So “waiting for xmas presents” I wait for the new bugfix version of 5.1
Thanks for your work debugging the code.
/Edit

Cheers,

Xennonflash

i’m using the 5.1 ppa builds on ubuntu and seeing frequent crashes as well. there seems to be some consistency with the segfault crash around placing symbols and also updating the pcb from the schematic…

Confirmed on 18.04 LTS
5.1 stock seems do it occasionally, however 5.1 master crashes quite a bit. It appears to have to do with symbols placing, moving, changing via ctrl+e.

KiCad just dispapears without a word.

yes i agree with your statement in principle, but the confirmation that there are some instabilities in a specific version of a release is also a valuable piece of information. in this case, if i can see other people reporting similar issues i can rule out that it is my specific OS/distro installation, and begin looking deeper into a root cause, as well as collect the information needed to file a bug report…

That’s fine and certainly up to you!

However, the only information we require in order to submit a bug report is the version information of your KiCad and what you did right before the crash. We’re quite friendly and worst case, we’ll ask for more information!

I always try to impress on people that even one crash and even due to special hardware/setup is too many.

3 Likes

It took me about half year to decide to setup an account there because I couldn’t understand the rules of use I was asked to read before accepting them. I read it any time I wonted to report a bug and gave up as I don’t like to sign if I don’t understand what I sign. At last I decided to accept them (many people did it then I hope nothing wrong will happen). I am still not sure what I had accepted. There were some informations which I uderstood that the account can be made to need a fee for it and it looked that it can happen in a way independent on me.

KiCad V4.0.7 was quite stable, but all V5 versions I’ve used seem to be much more buggy. While working with KiCad now I seem to have a Failed assertion, Gtk-WARNING, Segmentation fault and other stability issues.

Just now I had a failed assertion, and after that KiCac aborted with a segmentation fault. This is what was spit out on the command line over the duration of working with KiCad V5.1 for about an hour:

paul@dualcore:~/projects/arm/0000-00-00_Doc_Internet/projects/HighPower-Mechaduino/pcb$ kicad HighPower-Mechaduino.pro

(kicad:5060): Gtk-CRITICAL **: 12:25:34.494: gtk_box_gadget_distribute: assertion ‘size >= 0’ failed in GtkScrollbar

(kicad:5060): Gtk-CRITICAL **: 12:25:34.610: gtk_box_gadget_distribute: assertion ‘size >= 0’ failed in GtkScrollbar
12:27:17: Debug: Loading project ‘/home/paul/projects/arm/0000-00-00_Doc_Internet/projects/HighPower-Mechaduino/pcb/HighPower-Mechaduino.pro’ settings.
13:08:59: Debug: ClientToScreen cannot work when toplevel window is not shown
13:08:59: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:00: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:00: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown
13:09:01: Debug: ClientToScreen cannot work when toplevel window is not shown

(kicad:5060): Gtk-CRITICAL **: 13:11:01.226: gtk_box_gadget_distribute: assertion ‘size >= 0’ failed in GtkSpinButton

(kicad:5060): Gtk-CRITICAL **: 13:11:01.226: gtk_box_gadget_distribute: assertion ‘size >= 0’ failed in GtkSpinButton

(kicad:5060): Gtk-CRITICAL **: 13:11:01.226: gtk_box_gadget_distribute: assertion ‘size >= 0’ failed in GtkSpinButton

(kicad:5060): Gtk-WARNING **: 13:11:02.465: for_size smaller than min-size (28 < 32) while measuring gadget (node entry, owner GtkSpinButton)

(kicad:5060): Gtk-CRITICAL **: 13:11:02.465: gtk_box_gadget_distribute: assertion ‘size >= 0’ failed in GtkSpinButton

(kicad:5060): Gtk-WARNING **: 13:11:02.465: for_size smaller than min-size (28 < 32) while measuring gadget (node entry, owner GtkSpinButton)

(kicad:5060): Gtk-CRITICAL **: 13:11:02.465: gtk_box_gadget_distribute: assertion ‘size >= 0’ failed in GtkSpinButton

(kicad:5060): Gtk-WARNING **: 13:11:02.465: for_size smaller than min-size (28 < 32) while measuring gadget (node entry, owner GtkSpinButton)

(kicad:5060): Gtk-CRITICAL **: 13:11:02.466: gtk_box_gadget_distribute: assertion ‘size >= 0’ failed in GtkSpinButton

(kicad:5060): Gtk-WARNING **: 13:11:02.466: for_size smaller than min-size (28 < 32) while measuring gadget (node entry, owner GtkSpinButton)

(kicad:5060): Gtk-WARNING **: 13:11:02.466: for_size smaller than min-size (28 < 32) while measuring gadget (node entry, owner GtkSpinButton)

(kicad:5060): Gtk-WARNING **: 13:11:02.466: for_size smaller than min-size (26 < 32) while measuring gadget (node entry, owner GtkSpinButton)

(kicad:5060): Gtk-CRITICAL **: 13:11:02.467: gtk_box_gadget_distribute: assertion ‘size >= 0’ failed in GtkSpinButton

(kicad:5060): Gtk-WARNING **: 13:11:02.467: for_size smaller than min-size (26 < 32) while measuring gadget (node entry, owner GtkSpinButton)

(kicad:5060): Gtk-CRITICAL **: 13:11:02.467: gtk_box_gadget_distribute: assertion ‘size >= 0’ failed in GtkSpinButton

(kicad:5060): Gtk-WARNING **: 13:11:02.467: for_size smaller than min-size (26 < 32) while measuring gadget (node entry, owner GtkSpinButton)

(kicad:5060): Gtk-CRITICAL **: 13:11:02.467: gtk_box_gadget_distribute: assertion ‘size >= 0’ failed in GtkSpinButton

(kicad:5060): Gtk-WARNING **: 13:11:02.468: for_size smaller than min-size (26 < 32) while measuring gadget (node entry, owner GtkSpinButton)

(kicad:5060): Gtk-WARNING **: 13:11:02.468: for_size smaller than min-size (26 < 32) while measuring gadget (node entry, owner GtkSpinButton)
/build/kicad-PCtFts/kicad-5.1.0+dfsg1/pcbnew/tracks_cleaner.cpp(363): assert “connectivity->GetConnectivityAlgo()->ItemEntry( aTrack ).GetItems().size() != 0” failed in testTrackEndpointDangling().

(kicad:5060): Gtk-WARNING **: 13:18:26.839: gtk_window_set_titlebar() called on a realized window
Segmentation fault
paul@dualcore:~/projects/arm/0000-00-00_Doc_Internet/projects/HighPower-Mechaduipaul@dualcore:~/projects/arm/0000-00-00_Doc_Internet/projects/HighPower-Mechaduinopaul@dualcore:~/projects/arm/0000-00-00_Doc_Internet/projects/HighPower-Mechaduino/ppaul@dualcore:~/projects/arm/0000-00-00_Doc_Internet/projects/HighPower-Mechaduinopaul@dualcore:~/projects/armpaul@dualcore:~/paul@dualcorpaul@dualcore:~/projects/arm/0000-00-00_Doc_Internet/projects/HighPower-Mechaduinpaul@dualcore:~/projects/arm/0000-00-00_Doc_Internet/projects/HighPower-Mechaduino/pcb$paul@dualcore:~/projects/arm/0000-00paul@dualcore:~/projects/arm/0000-00-00_Doc_Internet/projects/HighPopaul@duapaul@dualcore:~/paul@dualcore:~/projectspaul@dualcore:~/projects/arm/0000-00-00_paul@dualcore:~/projects/arm/0000-00-00_paul@dualcore:~/projects/arm/0000-00-00_Doc_Internet/projects/HighPower-Mechaduino/ppaul@dualcore:~/projects/arm/0000-00-00_Dopaul@dualcore:~/projects/arm/0000-00-00_Doc_Internpaul@dpaul@dpaul@dualcore:~/projects/arm/0000-00-00_Doc_Internet/projects/HighPower-Mechaduino/paul@dualcore:~/projects/arm/0000-00-00_Doc_Internet/projects/HighPower-Mechaduino/pcb$

I have not tried to find the cause of these errors for posting a proper bug report.
There are so many small things that do not work as they are supposed to that it gets quite annoying sometimes.

A very weird symptom is that after the Segmentation fault, it spit out the command line with the current path multiple times,
I count over 50 “paul@dualcore:” in the screenshot below, followed with partial copies of the current path (cut at different characters). This looks like some kind of a buffer overrun.

Would something like this be worth filing a bug report?

Edit: Add version info:

Application: kicad
Version: 5.1.0+dfsg1-1, release build
Libraries:
wxWidgets 3.0.4
libcurl/7.64.0 OpenSSL/1.1.1b 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-4-amd64 x86_64, 64 bit, Little endian, wxGTK
Build Info:
wxWidgets: 3.0.4 (wchar_t,wx containers,compatible with 2.8) GTK+ 3.24
Boost: 1.67.0
OpenCASCADE Community Edition: 6.9.1
Curl: 7.64.0
Compiler: Clang 7.0.1 with C++ ABI 1002

Build settings:
USE_WX_GRAPHICS_CONTEXT=OFF
USE_WX_OVERLAY=ON
KICAD_SCRIPTING=ON
KICAD_SCRIPTING_MODULES=ON
KICAD_SCRIPTING_PYTHON3=ON
KICAD_SCRIPTING_WXPYTHON=ON
KICAD_SCRIPTING_WXPYTHON_PHOENIX=ON
KICAD_SCRIPTING_ACTION_MENU=ON
BUILD_GITHUB_PLUGIN=ON
KICAD_USE_OCE=ON
KICAD_USE_OCC=OFF
KICAD_SPICE=ON

Any crash is worth reporting.

And a footnote: stable does not mean bugfree. It means devoid of change. Kicad version 5.1.x series will by that definition be stable (no changes other than bugfixes)

Hi,

Since you’re running under Linux, could you try to reproduce this crash, running Kicad under GDB and send us a stacktrace? It seems to be UI-related (given the number of GTK warnings). GUI libraries under various Linux flavors are so diverse it’s hard to ensure each program will work flawlessly under different distributions, window managers, display servers, etc.

Tom

1 Like

Yes! Please! Just give your full KiCad information and what you were doing right before the crash

I have GDB installed, but have never used it.

I have quite some programming experience with C and C++ but most of it is with small microcontrollers. Last time I used a debugger was probably with some C# experiments 10 year or so ago.

After a bit of experimentation the Segmentation fault is exremely easy to reproduce.

  • Open Kicad with “Highpower-Mechaduino” project.
  • Start Pcbnew.
  • Pcbnew / Edit / Cleanup Tracks and Vias …
  • [OK] (Results in: “An assertion failed!”)
  • [Continue] ( Results in KiCad exiting with a Segmentation Fault).

ASSERT INFO:
/build/kicad-PCtFts/kicad-5.1.0+dfsg1/pcbnew/tracks_cleaner.cpp(363): assert “connectivity->GetConnectivityAlgo()->ItemEntry( aTrack ).GetItems().size() != 0” failed in testTrackEndpointDangling().

BACKTRACE:
[1] wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&)
[2] wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*)
[3] wxEvtHandler::TryHereOnly(wxEvent&)
[4] wxEvtHandler::DoTryChain(wxEvent&)
[5] wxEvtHandler::ProcessEvent(wxEvent&)
[6] wxWindowBase::TryAfter(wxEvent&)
[7] wxEvtHandler::SafelyProcessEvent(wxEvent&)
[8] wxMenuBase::SendEvent(int, int)
[9] g_closure_invoke
[10] g_signal_emit_valist
[11] g_signal_emit
[12] gtk_widget_activate
[13] gtk_menu_shell_activate_item
[14] g_signal_emit_valist
[15] g_signal_emit
[16] gtk_main_do_event
[17] g_main_context_dispatch
[18] g_main_loop_run
[19] gtk_main
[20] wxGUIEventLoop::DoRun()
[21] wxEventLoopBase::Run()
[22] wxAppConsoleBase::MainLoop()
[23] wxNavigationEnabled::RemoveChild(wxWindowBase*)
[24] wxEntry(int&, wchar_t**)
[25] wxNavigationEnabled::RemoveChild(wxWindowBase*)
[26] __libc_start_main
[27] _start

The popup with the failed assertion also does not paint it’s canvas properly, when resizing when opening the “backtrace” text area.

“Cleanup Tracks and Traces” does not trigger a fault in another project. Therefore I zipped the project and attached it:
Highpower-Machaduino-pcb.zip (612.3 KB)

Edit: Filed a bug report:
https://bugs.launchpad.net/kicad/+bug/1823973

1 Like

I did install KiCad V5.1.0 in a weird and maybe faulty way by temporarily making /etc/apt/sources.list point to “experimental” instead of “buster”.

It may add some usefull info if anybody else will download the zipfile from the previous post and check if the bug is trigged by the “Cleanup Tracks and Traces” menu command.

Thanks, I’ll have a look at it.

T.

This is no problem, currently buster is here in this case quite the same as unstable and experimental itself is “just” unstable plus some packages that are not in unstable. BTW: This version of KiCad is currently in unstable. not in experimental.

KiCad 5.1.0 will not go into Buster the normal transition way, any 5.1.x or later version will be available via backports once ready.

5.1.1 will be tagged very soon, fixing several 5.1.0 crash bugs

“Master” is currently highly unstable as new experimental code is being pushed. Do not use Nightlies for real work.

4.0.7 was the 8th iteration of the 4.0.x branch and was still not bug free

1 Like

Noted. Currently have to stay with 5.1 for ongoing tasks.

Though I actually attempted to downgrade to 5.02 which works until after loading a previously flawless boards off 5.02, a click on pcbnew lets KiCad disappear.

Been using vanilla synatic for package handling.

“KiCad V4.0.7 was quite stable, but all V5 versions I’ve used seem to be much more buggy”

With any luck it will be more solid after a bugfix release or two. Having everyone file bugs so that the issues are found and raised to the dev team will surely help.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.