Crash paying invoice
jralls at ceridwen.us
Sun May 4 01:38:10 EDT 2014
On May 3, 2014, at 9:03 PM, Mike Alexander <mta at umich.edu> wrote:
> Something in "private-kvp" branch that was merged in a day or two ago seems to have broken part of the business features. If I try to pay an invoice for a customer I get a crash in the code that creates the payment window. The top of the stack is
> * thread #1: tid = 0x81af3a, 0x00000001111f7c32 libgobject-2.0.0.dylib`g_type_check_instance_cast + 38, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x100000002)
> frame #0: 0x00000001111f7c32 libgobject-2.0.0.dylib`g_type_check_instance_cast + 38
> * frame #1: 0x00000001139eb92e libgncmod-business-gnome.dylib`gnc_payment_dialog_owner_changed(pw=0x00007fe33b2ceff0) + 78 at dialog-payment.c:461
> frame #2: 0x00000001139ed0c6 libgncmod-business-gnome.dylib`new_payment_window(owner=0x00007fff52546fc0, book=0x00007fe33c83c6d0, invoice=0x00007fe33a13a7f0) + 2812 at dialog-payment.c:991
> frame #3: 0x00000001139ed504 libgncmod-business-gnome.dylib`gnc_ui_payment_new_with_invoice(owner=0x00007fe33f26f350, book=0x00007fe33c83c6d0, invoice=0x00007fe33a13a7f0) + 110 at dialog-payment.c:1101
> frame #4: 0x00000001139e0cd5 libgncmod-business-gnome.dylib`gnc_invoice_window_payment_cb(widget=0x0000000000000000, data=0x00007fe33f26f1f0) + 139 at dialog-invoice.c:1078
> frame #5: 0x00000001139f4f90 libgncmod-business-gnome.dylib`gnc_plugin_page_invoice_cmd_pay_invoice(action=0x00007fe33a144070, plugin_page=0x00007fe33a9004b0) + 294 at gnc-plugin-page-invoice.c:908
> I verified that f49983b fails and acad5a0 works. I tried to do a bisect to find the problem, but many of the intermediate commits won't build cleanly on my machine so I gave up. When I reverted that merge things started working again. Hopefully this will be easy to reproduce, but if you need more info let me know.
Indeed, very easy to reproduce.
It's failing in QOF_IS_INSTANCE because not only is GncOwner not not a QofInstance subclass, it's not even a GObject. I'll have to think about that for a bit.
More information about the gnucash-devel