ERC: running twice leads to crash

Description

When running the ERC twice on a schematics that includes a rule area, Kicad reproducibly crashes under some conditions.

Steps to reproduce

test.kicad_sch

  1. With the attached schematics, run ERC. This rightfully reports some violations.
  2. Move the +5V power symbol (even just start moving it with g and aborting seems to be enough).
  3. Run ERC again. On my end, this reproducibly leads to a crash.

This is the observed backtrace:

(gdb) bt full
#0  0x0000742eb64d59b3 in ??? () at /usr/bin/_eeschema.kiface
#1  0x0000742eb652f018 in ??? () at /usr/bin/_eeschema.kiface
#2  0x0000742eb643e437 in ??? () at /usr/bin/_eeschema.kiface
#3  0x0000742eb5fbbd65 in ??? () at /usr/bin/_eeschema.kiface
#4  0x0000742eb5ec3152 in ??? () at /usr/bin/_eeschema.kiface
#5  0x0000742ed3ba3012 in wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&) () at /lib/x86_64-linux-gnu/libwx_baseu-3.2.so.0
#6  0x0000742ed3ba516d in wxEvtHandler::SearchDynamicEventTable(wxEvent&) () at /lib/x86_64-linux-gnu/libwx_baseu-3.2.so.0
#7  0x0000742ed3ba54cd in wxEvtHandler::TryHereOnly(wxEvent&) () at /lib/x86_64-linux-gnu/libwx_baseu-3.2.so.0
#8  0x0000742ed3ba557f in wxEvtHandler::ProcessEventLocally(wxEvent&) () at /lib/x86_64-linux-gnu/libwx_baseu-3.2.so.0
#9  0x0000742ed3ba5692 in wxEvtHandler::ProcessEvent(wxEvent&) () at /lib/x86_64-linux-gnu/libwx_baseu-3.2.so.0
#10 0x0000742ed3ba7183 in wxEvtHandler::SafelyProcessEvent(wxEvent&) () at /lib/x86_64-linux-gnu/libwx_baseu-3.2.so.0
#11 0x0000742ed41b8c7b in ??? () at /lib/x86_64-linux-gnu/libwx_gtk3u_core-3.2.so.0
#12 0x0000742ed326d6bd in ??? () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#13 0x0000742ed326d7c1 in g_signal_emit_valist () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#14 0x0000742ed326d883 in g_signal_emit () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#15 0x0000742ed16daf08 in ??? () at /lib/x86_64-linux-gnu/libgtk-3.so.0
#16 0x0000742ed324d2fa in g_closure_invoke () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#17 0x0000742ed327ca50 in ??? () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#18 0x0000742ed326d591 in ??? () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#19 0x0000742ed326d7c1 in g_signal_emit_valist () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#20 0x0000742ed326d883 in g_signal_emit () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#21 0x0000742ed16daccd in ??? () at /lib/x86_64-linux-gnu/libgtk-3.so.0
#22 0x0000742ed1699b43 in ??? () at /lib/x86_64-linux-gnu/libgtk-3.so.0
#23 0x0000742ed326d6bd in ??? () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#24 0x0000742ed326d7c1 in g_signal_emit_valist () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#25 0x0000742ed326d883 in g_signal_emit () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#26 0x0000742ed17b62f3 in ??? () at /lib/x86_64-linux-gnu/libgtk-3.so.0
#27 0x0000742ed32518da in g_cclosure_marshal_VOID__BOXEDv () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#28 0x0000742ed326d6bd in ??? () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#29 0x0000742ed326d7c1 in g_signal_emit_valist () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#30 0x0000742ed326d883 in g_signal_emit () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#31 0x0000742ed17adf5c in ??? () at /lib/x86_64-linux-gnu/libgtk-3.so.0
#32 0x0000742ed17b5ccb in ??? () at /lib/x86_64-linux-gnu/libgtk-3.so.0
#33 0x0000742ed17b95ca in ??? () at /lib/x86_64-linux-gnu/libgtk-3.so.0
#34 0x0000742ed1778ab3 in gtk_event_controller_handle_event () at /lib/x86_64-linux-gnu/libgtk-3.so.0
#35 0x0000742ed195e6d8 in ??? () at /lib/x86_64-linux-gnu/libgtk-3.so.0
#36 0x0000742ed169d0a4 in ??? () at /lib/x86_64-linux-gnu/libgtk-3.so.0
#37 0x0000742ed324d2fa in g_closure_invoke () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#38 0x0000742ed327cf98 in ??? () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#39 0x0000742ed326cef2 in ??? () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#40 0x0000742ed326d7c1 in g_signal_emit_valist () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#41 0x0000742ed326d883 in g_signal_emit () at /lib/x86_64-linux-gnu/libgobject-2.0.so.0
#42 0x0000742ed1966bf4 in ??? () at /lib/x86_64-linux-gnu/libgtk-3.so.0
#43 0x0000742ed1803390 in ??? () at /lib/x86_64-linux-gnu/libgtk-3.so.0
#44 0x0000742ed1803f2a in gtk_main_do_event () at /lib/x86_64-linux-gnu/libgtk-3.so.0
#45 0x0000742ed2b8d407 in ??? () at /lib/x86_64-linux-gnu/libgdk-3.so.0
#46 0x0000742ed2be6e2e in ??? () at /lib/x86_64-linux-gnu/libgdk-3.so.0
#47 0x0000742ed4714535 in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#48 0x0000742ed4773767 in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#49 0x0000742ed4714ef7 in g_main_loop_run () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#50 0x0000742ed17febc5 in gtk_main () at /lib/x86_64-linux-gnu/libgtk-3.so.0
#51 0x0000742ed415ff35 in wxGUIEventLoop::DoRun() () at /lib/x86_64-linux-gnu/libwx_gtk3u_core-3.2.so.0
#52 0x0000742ed3abff1a in wxEventLoopBase::Run() () at /lib/x86_64-linux-gnu/libwx_baseu-3.2.so.0
#53 0x0000742ed3aa238d in wxAppConsoleBase::MainLoop() () at /lib/x86_64-linux-gnu/libwx_baseu-3.2.so.0
#54 0x000063e658d48783 in ??? ()
#55 0x0000742ed3af94e0 in wxEntry(int&, wchar_t**) () at /lib/x86_64-linux-gnu/libwx_baseu-3.2.so.0
#56 0x000063e658d4417e in ??? ()
#57 0x0000742ed302a1ca in __libc_start_call_main (main=main@entry=0x63e658d44150, argc=argc@entry=2, argv=argv@entry=0x7ffc392abb08) at ../sysdeps/nptl/libc_start_call_main.h:58
        self = <optimized out>
        result = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140721267587848, -9151015785231758684, 2, 0, 109840983962328, 127744493424640, -9151015785191912796, -7591701245496735068}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x2, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 2}}}
        not_first_call = <optimized out>
--Type <RET> for more, q to quit, c to continue without paging--
#58 0x0000742ed302a28b in __libc_start_main_impl
    (main=0x63e658d44150, argc=2, argv=0x7ffc392abb08, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffc392abaf8) at ../csu/libc-start.c:360
#59 0x000063e658d444e5 in ??? ()

KiCad Version

Application: KiCad x86_64 on x86_64

Version: 9.0.7-9.0.7~ubuntu24.04.1, release build

Libraries:
	wxWidgets 3.2.4
	FreeType 2.13.2
	HarfBuzz 8.3.0
	FontConfig 2.15.0
	libcurl/8.5.0 OpenSSL/3.0.13 zlib/1.3 brotli/1.1.0 zstd/1.5.5 libidn2/2.3.7 libpsl/0.21.2 (+libidn2/2.3.7) libssh/0.10.6/openssl/zlib nghttp2/1.59.0 librtmp/2.3 OpenLDAP/2.6.7

Platform: Ubuntu 24.04.3 LTS, 64 bit, Little endian, wxGTK, X11, ubuntu, x11

Build Info:
	Date: Jan  1 2026 22:15:57
	wxWidgets: 3.2.4 (wchar_t,wx containers) GTK+ 3.24
	Boost: 1.83.0
	OCC: 7.6.3
	Curl: 8.5.0
	ngspice: 42
	Compiler: GCC 13.3.0 with C++ ABI 1018
	KICAD_IPC_API=ON

Locale: 
	Lang: en_US
	Enc: UTF-8
	Num: 1,234.5
	Encoded кΩ丈: D0BACEA9E4B888 (sys), D0BACEA9E4B888 (utf8)