Crash paying invoice

John Ralls jralls at ceridwen.us
Mon May 5 00:11:32 EDT 2014


On May 4, 2014, at 1:38 AM, John Ralls <jralls at ceridwen.us> wrote:

> 
> 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.

Turned out not to be so hard after all, there's just an extra level of indirection required. Fixed in edd85fa.

Regards,
John Ralls




More information about the gnucash-devel mailing list