GnuCash
Contact   Instructions
Bug 796962 - File save hangs
Summary: File save hangs
Status: RESOLVED FIXED
Alias: None
Product: GnuCash
Classification: Unclassified
Component: General (show other bugs)
Version: 3.5
Hardware: PC Windows
: Normal major
Target Milestone: ---
Assignee: general
QA Contact: general
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-12-01 12:21 EST by Jannick
Modified: 2019-04-07 08:24 EDT (History)
2 users (show)

See Also:


Attachments

Description Jannick 2018-12-01 12:21:08 EST
gnucash-3.900-2018-12-01-git-3.3-159-g6eba0d494+.setup.exe on Windows10:

I marked this issue as GENERAL, but not sure if this is the most appropriate category.


When saving a GC file, usually the progress bar is run and completed twice. For some of my GC files the saving hangs in the second phase. The trace log below shows the last lines before it starts to hang:

   * 17:38:41  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000

This line is repeated a couple of times, then GC becomes quiet (leaving it untouched). I believe that these log lines are created by https://github.com/Gnucash/gnucash/blob/6011749151793399727371db335a0e3dd9723d81/libgnucash/backend/xml/gnc-account-xml-v2.cpp#L150.

Killing the GC process appears to be the only way to get out of this loop, unfortunately ... including data loss.

I am currently running out of ideas to narrow the problem down, but happy to provide more information.

Side remark: In all of my GC files scheduled transactions are used. Not sure if they cause the issue or not.

Thanks!

---------------------------
Last part of the trace log:

* 17:38:34  INFO <qof.engine> [qof_event_generate_internal] id=3 hi=0a66f7d8 han=01087018 data=110b8bc0
* 17:38:34  INFO <qof.engine> [qof_event_generate_internal] id=2 hi=0a558540 han=6a0494d6 data=110b8bc0
* 17:38:34  INFO <qof.engine> [qof_event_generate_internal] id=1 hi=0a313388 han=6c90edc3 data=110b8bc0
* 17:38:34  INFO <qof.engine> [qof_event_generate_internal] id=20 hi=13e58528 han=010bc3c7 data=00000000
* 17:38:34  INFO <qof.engine> [qof_event_generate_internal] id=19 hi=139ab8d8 han=6c8c1955 data=00000000
* 17:38:34  INFO <qof.engine> [qof_event_generate_internal] id=17 hi=139e8378 han=6c92fc4b data=00000000
* 17:38:34  INFO <qof.engine> [qof_event_generate_internal] id=9 hi=11025ab0 han=66700042 data=00000000
* 17:38:34  INFO <qof.engine> [qof_event_generate_internal] id=3 hi=0a66f7d8 han=01087018 data=00000000
* 17:38:34  INFO <qof.engine> [qof_event_generate_internal] id=2 hi=0a558540 han=6a0494d6 data=00000000
* 17:38:34  INFO <qof.engine> [qof_event_generate_internal] id=1 hi=0a313388 han=6c90edc3 data=00000000
* 17:38:34  INFO <qof.object> [qof_object_foreach] type=Split
* 17:38:34  INFO <qof.engine> [qof_collection_foreach] Hash Table size of Split before is 661
* 17:38:34  INFO <qof.engine> [qof_collection_foreach] Hash Table size of Split after is 661
* 17:38:34  INFO <qof.query> [qof_query_run_internal] matching objects=10e711e0 count=124
* 17:38:34  INFO <gnc.account> [xaccAccountRecomputeBalance] acct=Girokonto starting baln=0/1
* 17:38:34  INFO <gnc.account> [xaccAccountRecomputeBalance] acct=Hausgeld starting baln=0/1
* 17:38:34  INFO <gnc.ledger> [gnc_split_register_move_cursor] after move 399 0 
* 17:38:35  INFO <gnc.ledger> [gnc_split_register_move_cursor] after move 400 0 
* 17:38:35  INFO <gnc.ledger> [gnc_split_register_move_cursor] after move 401 0 
* 17:38:35  INFO <gnc.ledger> [gnc_split_register_move_cursor] after move 402 0 
* 17:38:36  INFO <gnc.ledger> [gnc_split_register_move_cursor] after move 403 0 
* 17:38:36  INFO <gnc.ledger> [gnc_split_register_move_cursor] after move 404 0 
* 17:38:36  INFO <gnc.ledger> [gnc_split_register_move_cursor] after move 405 0 
* 17:38:37  INFO <gnc.ledger> [gnc_split_register_move_cursor] after move 414 0 
* 17:38:41  INFO <qof.object> [qof_object_foreach] type=gncBillTerm
* 17:38:41  INFO <qof.engine> [qof_collection_foreach] Hash Table size of gncBillTerm before is 0
* 17:38:41  INFO <qof.engine> [qof_collection_foreach] Hash Table size of gncBillTerm after is 0
* 17:38:41  INFO <qof.object> [qof_object_foreach] type=gncCustomer
* 17:38:41  INFO <qof.engine> [qof_collection_foreach] Hash Table size of gncCustomer before is 0
* 17:38:41  INFO <qof.engine> [qof_collection_foreach] Hash Table size of gncCustomer after is 0
* 17:38:41  INFO <qof.object> [qof_object_foreach] type=gncEmployee
* 17:38:41  INFO <qof.engine> [qof_collection_foreach] Hash Table size of gncEmployee before is 0
* 17:38:41  INFO <qof.engine> [qof_collection_foreach] Hash Table size of gncEmployee after is 0
* 17:38:41  INFO <qof.object> [qof_object_foreach] type=gncEntry
* 17:38:41  INFO <qof.engine> [qof_collection_foreach] Hash Table size of gncEntry before is 0
* 17:38:41  INFO <qof.engine> [qof_collection_foreach] Hash Table size of gncEntry after is 0
* 17:38:41  INFO <qof.object> [qof_object_foreach] type=gncInvoice
* 17:38:41  INFO <qof.engine> [qof_collection_foreach] Hash Table size of gncInvoice before is 0
* 17:38:41  INFO <qof.engine> [qof_collection_foreach] Hash Table size of gncInvoice after is 0
* 17:38:41  INFO <qof.object> [qof_object_foreach] type=gncJob
* 17:38:41  INFO <qof.engine> [qof_collection_foreach] Hash Table size of gncJob before is 0
* 17:38:41  INFO <qof.engine> [qof_collection_foreach] Hash Table size of gncJob after is 0
* 17:38:41  INFO <qof.object> [qof_object_foreach] type=gncOrder
* 17:38:41  INFO <qof.engine> [qof_collection_foreach] Hash Table size of gncOrder before is 0
* 17:38:41  INFO <qof.engine> [qof_collection_foreach] Hash Table size of gncOrder after is 0
* 17:38:41  INFO <qof.object> [qof_object_foreach] type=gncTaxTable
* 17:38:41  INFO <qof.engine> [qof_collection_foreach] Hash Table size of gncTaxTable before is 0
* 17:38:41  INFO <qof.engine> [qof_collection_foreach] Hash Table size of gncTaxTable after is 0
* 17:38:41  INFO <qof.object> [qof_object_foreach] type=gncVendor
* 17:38:41  INFO <qof.engine> [qof_collection_foreach] Hash Table size of gncVendor before is 0
* 17:38:41  INFO <qof.engine> [qof_collection_foreach] Hash Table size of gncVendor after is 0
* 17:38:41  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:41  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:41  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:41  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:41  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:41  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:41  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:41  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:41  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:41  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:41  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:41  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:41  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:41  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:41  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:41  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:41  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:42  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:42  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:42  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:42  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:42  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:42  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:42  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:42  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:42  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:42  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:42  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:42  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:42  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:42  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:42  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:42  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:42  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:42  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:42  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:42  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:42  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:42  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:43  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:43  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:43  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:43  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:43  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:43  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:43  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:43  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:43  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:43  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:43  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:43  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:43  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:43  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:43  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:43  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:43  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:43  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:43  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:43  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:44  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:44  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:44  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:44  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:44  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:44  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:44  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:44  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:44  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:44  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:44  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:44  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:44  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:44  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:44  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:44  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:44  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:44  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:44  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:44  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:44  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:44  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:44  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:44  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:45  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:45  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:45  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:45  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:45  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:45  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:45  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:45  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:45  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:45  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:45  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:45  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:45  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:45  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:46  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:46  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:46  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:46  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:46  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:46  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:46  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:47  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:47  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:47  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:47  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:47  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:47  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:47  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:47  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:47  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:47  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:47  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:47  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:47  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:47  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:47  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:47  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:47  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:47  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:47  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:47  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:47  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:47  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:47  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:48  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:48  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:48  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:48  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:48  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:48  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:48  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:48  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:59  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:59  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:59  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
* 17:38:59  INFO <gnc.io> [gnc_account_dom_tree_create] lot list=00000000
Comment 1 Jannick 2019-04-07 08:24:52 EDT
Appears to be fixed in GC 3.5 (or earlier).

That's great - I am starting on my bookings piled up in the last months.

Many thanks for looking after this!

Note You need to log in before you can comment on or make changes to this bug.