Crash of one part brings down entire KiCad

There has been a sound in the Chinese community for some time:
Why would the failure of one component of KiCad like the schematics editor bring down the entire software including their unsaved PCB?

As a contributor I looked into the structure a bit; basically KiCad itself is the “KiWay,” acting like a bus, and loads components “KiFace” as dynamic libraries. What those complaining users and I wondering is, since the different components are relatively separate from the main program (has different processes, like Chrome), then why KiCad can’t try to tolerate the problems of a single component?

I’d like to hear the answers. Thanks!

Good question. I imagine fixing it would pave the way towards other features like being able to look at multiple schematic sheets at the same time.

Kicad doesn’t have different processes when applications are launched from the project manager. They all live as separate windows of the same process. That’s why a segfault in one application brings down entire kicad.

2 Likes

I think the single process design made eeschema <-> pcbnew communication easier, at the cost of single process failure.

Kiway is just mostly a memory abusing dynamic library interface. It has no redundancy ability. Honestly the kiface extension itself is silly as these are just libraries that cannot be used cross-platform and were better off using the native .dll/.so extensions.

We have some ideas for v7 for true IPC to add the process isolation, what form it will come in is still up in the air and unforunately more than a year out. We need to finish v6 first which is already a struggle as is.

4 Likes

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