IDE crash on gtk2 with "bad window" on search replace-all (maybe ShowModal)
- Lazarus/FPC Version:
- 2.3 1e7d87dd + AnchorDocking
- 3.3.1 a1ea1dd98e7c76d656a232e822d3d7c47063a11a
- Operating System: Fedora 64 bit
- Intel 64bit
Run lazarus under gdb.
- Start search/replace (ctrl-f)
- Search: some term with multiple occurrences
- Replace: FooBar
- Scope: Global
- Prompt: yes
- => Replace all
Hit "no" for each replace prompt. (not sure if the issue happens 100% of the time, but it appears very frequent at least. Gdb should trap it)
[Thread 0x7fffe2ece640 (LWP 3630) exited]
(lazarus:3620): Gdk-ERROR **: 19:17:38.131: The program 'lazarus' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadWindow (invalid Window parameter)'.
(Details: serial 66521 error_code 3 request_code 12 minor_code 0)
(Note to programmers: normally, X errors are reported asynchronously;
that is, you will receive the error a while after causing it.
To debug your program, run it with the --sync command line
option to change this behavior. You can then get a meaningful
backtrace from your debugger if you break on the gdk_x_error() function.)
Missing separate debuginfos, use: dnf debuginfo-install adwaita-gtk2-theme-3.28-9.fc33.x86_64 atk-2.36.0-2.fc33.x86_64 bzip2-libs-1.0.8-4.fc33.x86_64 cairo-1.16.0-9.fc33.x86_64 dbus-libs-1.12.20-2.fc33.x86_64 fontconfig-2.13.92-12.fc33.x86_64 freetype-2.10.4-1.fc33.x86_64 fribidi-1.0.10-3.fc33.x86_64 gdk-pixbuf2-2.42.6-1.fc33.x86_64 gdk-pixbuf2-modules-2.42.6-1.fc33.x86_64 glib2-2.66.8-1.fc33.x86_64 graphite2-1.3.14-6.fc33.x86_64 gtk2-2.24.33-1.fc33.x86_64 gvfs-client-1.46.2-1.fc33.x86_64 harfbuzz-2.7.2-1.fc33.x86_64 ibus-gtk2-1.5.23-2.fc33.x86_64 ibus-libs-1.5.23-2.fc33.x86_64 libX11-1.7.2-3.fc33.x86_64 libXau-1.0.9-4.fc33.x86_64 libXcomposite-0.4.5-3.fc33.x86_64 libXcursor-1.2.0-3.fc33.x86_64 libXdamage-1.1.5-3.fc33.x86_64 libXext-1.3.4-4.fc33.x86_64 libXfixes-5.0.3-12.fc33.x86_64 libXi-1.7.10-4.fc33.x86_64 libXinerama-1.1.4-6.fc33.x86_64 libXrandr-1.5.2-4.fc33.x86_64 libXrender-0.9.10-12.fc33.x86_64 libbrotli-1.0.9-3.fc33.x86_64 libcanberra-gtk2-0.30-23.fc33.x86_64 libffi-3.1-26.fc33.x86_64 libgcc-10.3.1-1.fc33.x86_64 libgcrypt-1.8.8-1.fc33.x86_64 libgpg-error-1.41-1.fc33.x86_64 libjpeg-turbo-2.0.5-5.fc33.x86_64 libmount-2.36.1-1.fc33.x86_64 libpng-1.6.37-6.fc33.x86_64 libselinux-3.1-2.fc33.x86_64 libtdb-1.4.3-5.fc33.x86_64 libthai-0.1.28-5.fc33.x86_64 libtool-ltdl-2.4.6-36.fc33.x86_64 libxcb-1.13.1-5.fc33.x86_64 libxml2-2.9.12-4.fc33.x86_64 libzstd-1.5.0-1.fc33.x86_64 lz4-libs-1.9.1-3.fc33.x86_64 pango-1.48.4-2.fc33.x86_64 pcre-8.44-2.fc33.x86_64 pcre2-10.36-4.fc33.x86_64 pixman-0.40.0-2.fc33.x86_64 systemd-libs-246.15-1.fc33.x86_64 xz-libs-5.2.5-4.fc33.x86_64 zlib-1.2.11-23.fc33.x86_64
Thread 1 "lazarus" received signal SIGTRAP, Trace/breakpoint trap.
0x00007ffff774a3e7 in g_log_structured_array () from /lib64/libglib-2.0.so.0
(gdb) bt
#0 0x00007ffff774a3e7 in g_log_structured_array () at /lib64/libglib-2.0.so.0
#1 0x00007ffff774a6a9 in g_log_default_handler () at /lib64/libglib-2.0.so.0
#2 0x00007ffff774b8e6 in g_logv () at /lib64/libglib-2.0.so.0
#3 0x00007ffff774bb83 in g_log () at /lib64/libglib-2.0.so.0
#4 0x00007ffff7f265b9 in gdk_x_error.lto_priv () at /lib64/libgdk-x11-2.0.so.0
#5 0x00007ffff78f9df4 in _XError () at /lib64/libX11.so.6
#6 0x00007ffff78f9ef7 in handle_error () at /lib64/libX11.so.6
#7 0x00007ffff78f9f95 in handle_response () at /lib64/libX11.so.6
#8 0x00007ffff78fb85d in _XReply () at /lib64/libX11.so.6
#9 0x00007ffff78ef713 in XReconfigureWMWindow () at /lib64/libX11.so.6
#10 0x00007ffff7f3128d in gdk_window_x11_restack_toplevel.lto_priv () at /lib64/libgdk-x11-2.0.so.0
#11 0x00000000004fe01c in AppRemoveStayOnTopFlags (this=0x7ffff67bc3f0, ASystemTopAlso=true) at gtk2/gtk2widgetset.inc:1283
#12 0x0000000000496e59 in RemoveStayOnTop (this=0x7ffff67bbd90, ASystemTopAlso=true) at include/application.inc:1324
#13 0x00000000004941d0 in ModalStarted (this=0x7ffff67bbd90) at include/application.inc:348
#14 0x000000000048d60f in ShowModal (this=0x7fffe048c890) at include/customform.inc:2996
#15 0x0000000000582a07 in DefaultPromptDialog (DialogCaption=..., DialogMessage=..., DialogType=259, Buttons=0x7fffe0d26a80, ButtonCount=4, DefaultIndex=0, EscapeResult=2, UseDefaultPos=false, X=612, Y=821) at include/promptdialog.inc:519
#16 0x000000000065dfa8 in PromptUserAtXY (this=0x7ffff67bc3f0, DialogCaption=..., DialogMessage=..., DialogType=259, Buttons=0x7fffe0d26a80, ButtonCount=4, DefaultIndex=0, EscapeResult=2, X=612, Y=821) at include/intfbaselcl.inc:557
#17 0x000000000057258d in PromptUserAtXY (DialogMessage=..., DialogType=259, Buttons=0x7fffe0d26a80, ButtonCount=4, DefaultIndex=0, EscapeResult=2, X=612, Y=821) at include/lclintf.inc:367
#18 0x000000000057fbc0 in MessageDlgPos (aMsg=..., DlgType=mtConfirmation, Buttons=..., HelpCtx=0, X=612, Y=821) at include/messagedialogs.inc:192
#19 0x0000000000b802e3 in OnReplace (this=0x7fffe05f2b20, Sender=0x7fffce1af4f0, ASearch=..., AReplace=..., Line=161, Column=3, Action=raCancel) at sourceeditor.pp:3892
#20 0x0000000000958c44 in DoOnReplaceText (this=0x7fffce1af4f0, ASearch=..., AReplace=..., Line=161, Column=3) at synedit.pp:9890
#21 0x000000000094e6dc in SearchReplaceEx (this=0x7fffce1af4f0, ASearch=..., AReplace=..., AOptions=..., AStart=...) at synedit.pp:8127
#22 0x000000000094df6c in SearchReplace (this=0x7fffce1af4f0, ASearch=..., AReplace=..., AOptions=...) at synedit.pp:7996
#23 0x0000000000b7fe4b in DoFindAndReplace (this=0x7fffe05f2b20, aFindText=..., aReplaceText=..., anOptions=...) at sourceeditor.pp:3836
#24 0x0000000000b7f5f8 in StartFindAndReplace (this=0x7fffe05f2b20, Replace=true) at sourceeditor.pp:3726
#25 0x0000000000b81a4c in ProcessUserCommand (this=0x7fffe05f2b20, Sender=0x7fffce1af4f0, Command=1002, AChar=..., Data=0x0) at sourceeditor.pp:4223
#26 0x000000000094bac5 in DoOnProcessCommand (this=0x7fffce1af4f0, Command=1002, AChar=..., Data=0x0) at synedit.pp:7515
#27 0x0000000000945cc7 in CommandProcessor (this=0x7fffce1af4f0, Command=1002, AChar=..., Data=0x0, ASkipHooks=...) at synedit.pp:6725
#28 0x0000000000932118 in KeyDown (this=0x7fffce1af4f0, Key=0, Shift=...) at synedit.pp:3107
#29 0x000000000059ca0f in KeyDownBeforeInterface (this=0x7fffce1af4f0, Key=0, Shift=...) at include/wincontrol.inc:5700
#30 0x000000000059cd4e in DoKeyDownBeforeInterface (this=0x7fffce1af4f0, Message=..., IsRecurseCall=false) at include/wincontrol.inc:5831
#31 0x00000000005a01b3 in CNKeyDown (this=0x7fffce1af4f0, Message=...) at include/wincontrol.inc:7211
#32 0x0000000000433801 in SYSTEM$_$TOBJECT_$__$$_DISPATCH$formal ()
#33 0x00000000005aa5cd in WndProc (this=0x7fffce1af4f0, TheMessage=...) at include/control.inc:2292
#34 0x000000000059c01d in WndProc (this=0x7fffce1af4f0, Message=...) at include/wincontrol.inc:5427
#35 0x0000000000943845 in WndProc (this=0x7fffce1af4f0, Msg=...) at synedit.pp:6289
#36 0x00000000007a6e9f in DeliverMessage (Target=0x7fffce1af4f0, AMessage=<error reading variable: Attempt to dereference a generic pointer.>) at lclmessageglue.pas:112
#37 0x000000000066d705 in DeliverMessage (Target=0x7fffce1af4f0, AMessage=<error reading variable: Attempt to dereference a generic pointer.>) at gtk2/gtk2proc.inc:3776
#38 0x000000000066a845 in DeliverKeyMessage ($parentfp=0x7fffffffd6a0, Target=0x7fffce1af4f0, AMessage=<error reading variable: Attempt to dereference a generic pointer.>) at gtk2/gtk2proc.inc:1914
#39 0x0000000000669591 in HandleGTKKeyUpDown (AWidget=0x2c044e0, AEvent=0x2c3b110, AData=0x7fffcf4a5510, ABeforeEvent=true, AHandleDown=true, AEventName=0x193b0d0 "key-press-event") atgtk2/gtk2proc.inc:2379
#40 0x000000000067aef5 in GTKKeyPress (Widget=0x2c044e0, Event=0x2c3b110, Data=0x7fffcf4a5510) at gtk2/gtk2callback.inc:803
#41 0x00007ffff7b49f2d in _gtk_marshal_BOOLEAN__BOXED () at /lib64/libgtk-x11-2.0.so.0
#42 0x00007ffff7835e2a in g_closure_invoke () at /lib64/libgobject-2.0.so.0
#43 0x00007ffff785f303 in signal_emit_unlocked_R.isra.0 () at /lib64/libgobject-2.0.so.0
#44 0x00007ffff7852a6e in g_signal_emit_valist () at /lib64/libgobject-2.0.so.0
#45 0x00007ffff7853123 in g_signal_emit () at /lib64/libgobject-2.0.so.0
#46 0x00007ffff7c935e4 in gtk_widget_event_internal.lto_priv () at /lib64/libgtk-x11-2.0.so.0
#47 0x00007ffff7b4dfcc in gtk_propagate_event () at /lib64/libgtk-x11-2.0.so.0
#48 0x00007ffff7b4fa83 in gtk_main_do_event () at /lib64/libgtk-x11-2.0.so.0
#49 0x00007ffff7f22d83 in gdk_event_dispatch.lto_priv () at /lib64/libgdk-x11-2.0.so.0
#50 0x00007ffff7743a9f in g_main_context_dispatch () at /lib64/libglib-2.0.so.0
#51 0x00007ffff7795a98 in g_main_context_iterate.constprop () at /lib64/libglib-2.0.so.0
#52 0x00007ffff7740e73 in g_main_context_iteration () at /lib64/libglib-2.0.so.0
#53 0x0000000000501253 in AppWaitMessage (this=0x7ffff67bc3f0) at gtk2/gtk2widgetset.inc:2574
#54 0x0000000000494709 in Idle (this=0x7ffff67bbd90, Wait=true) at include/application.inc:453
#55 0x0000000000496c18 in HandleMessage (this=0x7ffff67bbd90) at include/application.inc:1265
#56 0x000000000049726d in RunLoop (this=0x7ffff67bbd90) at include/application.inc:1400
#57 0x00000000006563e8 in AppRun (this=0x7ffff67bc3f0, ALoop=...) at include/interfacebase.inc:54
#58 0x0000000000497214 in Run (this=0x7ffff67bbd90) at include/application.inc:1388
#59 0x000000000042186c in $main () at lazarus.pp:154
Edited by Martin