Crash in hbci online transfer in master but not in maint

John Ralls jralls at
Thu Jun 26 19:15:02 EDT 2014

On Jun 24, 2014, at 1:19 PM, Christian Stimming <christian at> wrote:

> Due to some messed-up set up of my local git clone I apparently haven't 
> updated my local working copy to our common master for several months. Now 
> that I did that, I discovered that the online transfer menu item ("send online 
> transfer") will crash in master but not in maint. 
> The crash is most likely a side-effect of some changes in the KVP treatment in 
> master, but I don't immediately recall the commits in question. Backtrace is 
> below. Can someone point me to the commits in master that might have affected 
> the behaviour of KVP, especially of kvp that contains lists of kvp frames? 

The private-kvp work was all done on a private branch, and the last commit before the merge was 207bedb4, so if you start there and follow the chain back you'll get only those commits. The last commit to master before the commit was acad5a02, which means
  git log acad05a02..207bedb4
will list only the private-kvp commits.

4a4b1805 implemented all of the kvp <-> gvalue functions including the list_from_kvp that's crashing, and 7faed65 included the rewiring of gnc-ab-kvp.c.

> To reproduce: If you have a working online banking setup and also some stored 
> transaction templates, clicking "Actions -> Online Actions -> Online Transfer" 
> will now immediately crash as shown below:

> Program received signal SIGSEGV, Segmentation fault.
> gvalue_list_from_kvp_value (kval=<optimized out>, pList=0x7fffffffbcf0)
>    at ../../../../src/libqof/qof/kvp_frame.cpp:1677
> 1677        if (G_VALUE_TYPE (gval))
> (gdb) bt
> #0  gvalue_list_from_kvp_value (kval=<optimized out>, pList=0x7fffffffbcf0)
>    at ../../../../src/libqof/qof/kvp_frame.cpp:1677
> #1  0x00007ffff608b648 in g_list_foreach (list=<optimized out>, 
>    func=0x7ffff6ca1590 <gvalue_list_from_kvp_value(KvpValue*, gpointer)>, 
>    user_data=0x7fffffffbcf0)
>    at /build/buildd/glib2.0-2.40.0/./glib/glist.c:993
> #2  0x00007ffff6ca14e2 in gvalue_from_kvp_value (kval=0xd9f190)
>    at ../../../../src/libqof/qof/kvp_frame.cpp:1745
> #3  0x00007ffff6ca714c in qof_instance_get_kvp (inst=<optimized out>, 
>    key=0x7ffff6cb3068 "hbci/template-list", value=0x7fffffffbd50)
>    at ../../../../src/libqof/qof/qofinstance.cpp:1082
> #4  0x00007ffff3b0b005 in object_get_property (value=0x7fffffffbd50, 
>    pspec=<optimized out>, object=0x79d260)
>    at /build/buildd/glib2.0-2.40.0/./gobject/gobject.c:1315
> #5  g_object_get_valist (object=0x79d260, first_property_name=<optimized out>, 
>    var_args=0x7fffffffbdf8)
>    at /build/buildd/glib2.0-2.40.0/./gobject/gobject.c:2171
> #6  0x00007ffff6ca6dc4 in qof_instance_get (inst=0x79d260, 
>    first_prop=first_prop at entry=0x7fffdaf749fd "ab-templates")
>    at ../../../../src/libqof/qof/qofinstance.cpp:949
> #7  0x00007fffdaf6aa59 in gnc_ab_get_book_template_list (b=0x79d260)
>    at ../../../../src/import-export/aqb/gnc-ab-kvp.c:124
> #8  0x00007fffdaf6b3d5 in gnc_ab_maketrans (parent=0x6e8a00, 
>    gnc_acc=gnc_acc at entry=0xe297b0, 
>    trans_type=trans_type at entry=SINGLE_TRANSFER)
>    at ../../../../src/import-export/aqb/gnc-ab-transfer.c:122
> #9  0x00007fffdaf72b80 in gnc_plugin_ab_cmd_issue_transaction (
> ---Type <return> to continue, or q <return> to quit---q

I'm not able to reproduce this, largely because I don't see the menu item in question. If you can give me some suitable bogus settings for an HBCI account I can try again.

Gotta go catch a plane.

John Ralls

More information about the gnucash-devel mailing list