Segfault when pressing escape while editing a new transaction

Bug #1681532 reported by Jeff Fortin Tam
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
HomeBank
Fix Released
Low
Maxime DOYEN

Bug Description

With Homebank 5.1.4 on Fedora 25 x64.

If I open one of my accounts, click Add to create a new transaction, type some numbers in the Amount field, then press "Escape" to close the window because I changed my mind, Homebank crashes. Reproducible every time.

Here's the gdb backtrace output:

(homebank:31990): Gtk-CRITICAL **: gtk_combo_box_get_active:
                  assertion 'GTK_IS_COMBO_BOX (combo_box)' failed

Thread 1 "homebank" received signal SIGSEGV, Segmentation fault.
0x00007ffff5c05df6 in g_type_check_instance_cast () from /lib64/libgobject-2.0.so.0

(gdb) bt full
#0 0x00007ffff5c05df6 in g_type_check_instance_cast () at /lib64/libgobject-2.0.so.0
#1 0x00005555555cfbf7 in deftransaction_update_warnsign ()
#2 0x00005555555cfce3 in deftransaction_amount_focusout ()
#3 0x00007ffff74aeddc in _gtk_marshal_BOOLEAN__BOXED () at /lib64/libgtk-3.so.0
#4 0x00007ffff5be13e5 in g_closure_invoke () at /lib64/libgobject-2.0.so.0
#5 0x00007ffff5bf3432 in signal_emit_unlocked_R () at /lib64/libgobject-2.0.so.0
#6 0x00007ffff5bfbb8f in g_signal_emit_valist () at /lib64/libgobject-2.0.so.0
#7 0x00007ffff5bfc43f in g_signal_emit () at /lib64/libgobject-2.0.so.0
#8 0x00007ffff75fc26c in gtk_widget_event_internal () at /lib64/libgtk-3.so.0
#9 0x00007ffff760da75 in gtk_widget_send_focus_change () at /lib64/libgtk-3.so.0
#10 0x00007ffff7611510 in do_focus_change () at /lib64/libgtk-3.so.0
#11 0x00007ffff761170a in gtk_window_real_set_focus () at /lib64/libgtk-3.so.0
#12 0x00007ffff5be4470 in g_cclosure_marshal_VOID__OBJECTv () at /lib64/libgobject-2.0.so.0
#13 0x00007ffff5be1614 in _g_closure_invoke_va () at /lib64/libgobject-2.0.so.0
#14 0x00007ffff5bfbdd9 in g_signal_emit_valist () at /lib64/libgobject-2.0.so.0
#15 0x00007ffff5bfc43f in g_signal_emit () at /lib64/libgobject-2.0.so.0
#16 0x00007ffff7618d32 in gtk_window_dispose () at /lib64/libgtk-3.so.0
#17 0x00007ffff5be7ae9 in g_object_run_dispose () at /lib64/libgobject-2.0.so.0
#18 0x0000555555573d0a in register_panel_action ()
#19 0x00007ffff5be13e5 in g_closure_invoke () at /lib64/libgobject-2.0.so.0
#20 0x00007ffff5bf3432 in signal_emit_unlocked_R () at /lib64/libgobject-2.0.so.0
#21 0x00007ffff5bfc05f in g_signal_emit_valist () at /lib64/libgobject-2.0.so.0
#22 0x00007ffff5bfc43f in g_signal_emit () at /lib64/libgobject-2.0.so.0
#23 0x00007ffff7328220 in _gtk_action_emit_activate () at /lib64/libgtk-3.so.0
#24 0x00007ffff75aeda9 in button_clicked () at /lib64/libgtk-3.so.0
#25 0x00007ffff5be1614 in _g_closure_invoke_va () at /lib64/libgobject-2.0.so.0
#26 0x00007ffff5bfbdd9 in g_signal_emit_valist () at /lib64/libgobject-2.0.so.0
#27 0x00007ffff5bfc43f in g_signal_emit () at /lib64/libgobject-2.0.so.0
#28 0x00007ffff73abc6d in gtk_button_do_release () at /lib64/libgtk-3.so.0
#29 0x00007ffff73abcd5 in gtk_real_button_released () at /lib64/libgtk-3.so.0
#30 0x00007ffff5be13e5 in g_closure_invoke () at /lib64/libgobject-2.0.so.0
#31 0x00007ffff5bf2e04 in signal_emit_unlocked_R () at /lib64/libgobject-2.0.so.0
#32 0x00007ffff5bfc05f in g_signal_emit_valist () at /lib64/libgobject-2.0.so.0
#33 0x00007ffff5bfc43f in g_signal_emit () at /lib64/libgobject-2.0.so.0
#34 0x00007ffff73aa0c0 in multipress_released_cb () at /lib64/libgtk-3.so.0
#35 0x00007fffef8f0c58 in ffi_call_unix64 () at /lib64/libffi.so.6
#36 0x00007fffef8f06ba in ffi_call () at /lib64/libffi.so.6
#37 0x00007ffff5be20fa in g_cclosure_marshal_generic_va () at /lib64/libgobject-2.0.so.0
#38 0x00007ffff5be1614 in _g_closure_invoke_va () at /lib64/libgobject-2.0.so.0
#39 0x00007ffff5bfbdd9 in g_signal_emit_valist () at /lib64/libgobject-2.0.so.0
#40 0x00007ffff5bfc43f in g_signal_emit () at /lib64/libgobject-2.0.so.0
#41 0x00007ffff7465d41 in gtk_gesture_multi_press_end () at /lib64/libgtk-3.so.0
#42 0x00007ffff5be4197 in g_cclosure_marshal_VOID__BOXEDv () at /lib64/libgobject-2.0.so.0
#43 0x00007ffff5be1614 in _g_closure_invoke_va () at /lib64/libgobject-2.0.so.0
#44 0x00007ffff5bfbdd9 in g_signal_emit_valist () at /lib64/libgobject-2.0.so.0
#45 0x00007ffff5bfc43f in g_signal_emit () at /lib64/libgobject-2.0.so.0
#46 0x00007ffff746300e in _gtk_gesture_check_recognized () at /lib64/libgtk-3.so.0
#47 0x00007ffff746463b in gtk_gesture_handle_event () at /lib64/libgtk-3.so.0
#48 0x00007ffff74672bd in gtk_gesture_single_handle_event () at /lib64/libgtk-3.so.0
#49 0x00007ffff743467e in gtk_event_controller_handle_event () at /lib64/libgtk-3.so.0
#50 0x00007ffff75fa00b in _gtk_widget_run_controllers () at /lib64/libgtk-3.so.0
#51 0x00007ffff74aeed1 in _gtk_marshal_BOOLEAN__BOXEDv () at /lib64/libgtk-3.so.0
#52 0x00007ffff5be1614 in _g_closure_invoke_va () at /lib64/libgobject-2.0.so.0
#53 0x00007ffff5bfb8b3 in g_signal_emit_valist () at /lib64/libgobject-2.0.so.0
#54 0x00007ffff5bfc43f in g_signal_emit () at /lib64/libgobject-2.0.so.0
#55 0x00007ffff75fc26c in gtk_widget_event_internal () at /lib64/libgtk-3.so.0
#56 0x00007ffff74abeae in propagate_event () at /lib64/libgtk-3.so.0
#57 0x00007ffff74adf1e in gtk_main_do_event () at /lib64/libgtk-3.so.0
#58 0x00007ffff6fc35c5 in _gdk_event_emit () at /lib64/libgdk-3.so.0
#59 0x00007ffff6ff4582 in gdk_event_source_dispatch () at /lib64/libgdk-3.so.0
#60 0x00007ffff5908e52 in g_main_context_dispatch () at /lib64/libglib-2.0.so.0
#61 0x00007ffff59091d0 in g_main_context_iterate.isra () at /lib64/libglib-2.0.so.0
#62 0x00007ffff59094f2 in g_main_loop_run () at /lib64/libglib-2.0.so.0
#63 0x00007ffff74ad0d5 in gtk_main () at /lib64/libgtk-3.so.0
#64 0x00005555555725b0 in main ()
(gdb)

Jeff Fortin Tam (kiddo)
description: updated
Revision history for this message
Maxime DOYEN (mdoyen) wrote :

I don't reproduce on my ubuntu 17.04 x64 with 5.1.4 nor my trunk
will make further test.
what is the gtk+ version on Fedora 25 ?

Changed in homebank:
status: New → Incomplete
Revision history for this message
Jeff Fortin Tam (kiddo) wrote :

This is GTK 3.22.11

Changed in homebank:
status: Incomplete → New
Maxime DOYEN (mdoyen)
Changed in homebank:
milestone: none → 5.1.5
Revision history for this message
Maxime DOYEN (mdoyen) wrote :

still not reproduced, so I put a preventive code

Changed in homebank:
assignee: nobody → Maxime Doyen (mdoyen)
importance: Undecided → Low
status: New → Fix Committed
Maxime DOYEN (mdoyen)
Changed in homebank:
status: Fix Committed → Fix Released
Jeff Fortin Tam (kiddo)
Changed in homebank:
status: Fix Released → New
Revision history for this message
Jeff Fortin Tam (kiddo) wrote :

Bonjour, I have good news and bad news.

* The bad news: it still occurs with Homebank 5.5.6 (running against GTK+ 3.24.34, on Fedora 35).
* The good news: I have not only an updated GDB traceback, but also a video demonstrating how to trigger it.

The video is here: https://youtu.be/CVe1c8yvWgs

Attached is the new backtrace.

Revision history for this message
Maxime DOYEN (mdoyen) wrote :

fixed,
here is a patch

Changed in homebank:
milestone: 5.1.5 → 5.5.7
status: New → Fix Committed
Maxime DOYEN (mdoyen)
Changed in homebank:
status: Fix Committed → Fix Released
Revision history for this message
rugk (48509946-3) wrote :

Is this the same as "homebank: g_type_check_instance_cast(): homebank killed by SIGSEGV" reported as downstream?

https://bugzilla.redhat.com/show_bug.cgi?id=2141856

Description of problem:
was using HomeBank normally and IIRC created a new transaction

Version-Release number of selected component:
homebank-5.5.6-1.fc36

Additional info:
reporter: libreport-2.17.4
backtrace_rating: 4
cgroup: 0::/user.slice/user-1004.slice/user@1004.service/app.slice/app-gnome-homebank-8258.scope
cmdline: homebank
crash_function: g_type_check_instance_cast
executable: /usr/bin/homebank
journald_cursor: s=03401485f33d4ebba030a03550082eab;i=30ae;b=c33a059198c04f9cae9c9802103cc022;m=68182b9c;t=5ed2203742c76;x=9e23e4174fc0872a
kernel: 5.19.14-200.fc36.x86_64
rootdir: /
runlevel: N 5
type: CCpp
uid: 1004

Truncated backtrace:
Thread no. 1 (10 frames)
 #0 g_type_check_instance_cast at ../gobject/gtype.c:4126
 #1 deftransaction_cb_amount_focusout at /usr/src/debug/homebank-5.5.6-1.fc36.x86_64/src/ui-transaction.c:448
 #2 _gtk_marshal_BOOLEAN__BOXED at gtk/gtkmarshalers.c:84
 #4 signal_emit_unlocked_R.isra.0 at ../gobject/gsignal.c:3743
 #7 gtk_widget_event_internal.part.0.lto_priv.0 at ../gtk/gtkwidget.c:7812
 #8 gtk_widget_send_focus_change at ../gtk/gtkwidget.c:16244
 #9 do_focus_change at ../gtk/gtkwindow.c:8452
 #10 gtk_window_real_set_focus at ../gtk/gtkwindow.c:8741
 #11 g_cclosure_marshal_VOID__OBJECTv at ../gobject/gmarshal.c:1910
 #12 _g_closure_invoke_va at ../gobject/gclosure.c:893

Revision history for this message
Maxime DOYEN (mdoyen) wrote :

maybe, just apply the patch to test
but will probably fix

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.