GNOME Bugzilla – Bug 339656
Crash when opening data file
Last modified: 2018-06-29 21:02:20 UTC
Using r13842 on FC4, kernel 2.6.16. Not sure what caused the problem since I've attempted to duplicate it but can't, but opening my data file results in a crash. The only clues I can provide are that I was "playing" with the book closing feature in r13841. I had at several times cancelled the book closing. Unfortunately, I've subsequently tried to duplicate the problem on a backup copy of my data file and have been unsuccessful at reliably duplicating it (with the exception that once the data file casues a crash, it always causes a crash). Updating to r13842 made no difference. The terminal output is: (gnucash:28141): Gtk-CRITICAL **: gtk_tree_model_filter_convert_iter_to_child_iter: assertion `filter_iter->stamp == filter->priv->stamp' failed (gnucash:28141): GLib-GObject-WARNING **: gtype.c:3351: type id `0' is invalid (gnucash:28141): GLib-GObject-WARNING **: can't peek value table for type `<invalid>' which is not currently referenced And a backtrace is Backtrace was generated from '/opt/gnucash/bin/gnucash' (no debugging symbols found) Using host libthread_db library "/lib/libthread_db.so.1". (no debugging symbols found) (no debugging symbols found) (no debugging symbols found) [Thread debugging using libthread_db enabled] [New Thread -1208993568 (LWP 28141)] 0x007bc402 in ?? ()
+ Trace 67834
Thread 1 (Thread -1208993568 (LWP 28141))
In frames 24 and 23, notice that this is restoring your account-tree page. In ~/.gnucash/books/{$filename} there should be a section containing the account tree page settings. It may be helpful to post that. OTOH, look at frame 6. You might try somthing like: (gdb) frame 6 (gdb) list (gdb) print iter1 (gdb) print iter2 (gdb) print column (gdb) print str1 (gdb) print str2 (gdb) print model
(gdb) frame 2
+ Trace 67835
11 12 The above copyright notice and this permission notice shall be included 13 in all copies or substantial portions of the Software. 14 15 THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS 16 OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 17 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 18 IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR 19 OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 20 ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR (gdb) print iter1 No symbol "iter1" in current context. (gdb) print iter2 No symbol "iter2" in current context.
(gdb) list 282 gint result; 283 284 model = sort_cb_setup_w_iters(f_model, f_iter1, f_iter2, &iter1, &iter2, &account1, &account2); 285 286 /* Get the strings. */ 287 gtk_tree_model_get(GTK_TREE_MODEL(model), &iter1, column, &str1, -1); 288 gtk_tree_model_get(GTK_TREE_MODEL(model), &iter2, column, &str2, -1); 289 290 result = safe_utf8_collate(str1, str2); 291 if (result != 0) (gdb) print iter1 $1 = {stamp = 13442084, user_data = 0x983eea8, user_data2 = 0x6057e68, user_data3 = 0xbffa77a8} (gdb) print iter2 $2 = {stamp = 1476671929, user_data = 0x947a010, user_data2 = 0x94670c8, user_data3 = 0x0} (gdb) print column No symbol "column" in current context. (gdb) print str1 $3 = (const gchar *) 0x983eea8 "h\203\t" (gdb) print str2 $4 = (const gchar *) 0x5f35174 "\203�020[^]�\211�VS\203���\201�,\022" (gdb) print model $5 = (GtkTreeModel *) 0x97a4da8
(gdb) bt
+ Trace 67837
22:22 < twunder> #2 0x00baaa93 in sort_by_string (f_model=0x95a35a8, f_iter1=0xbffa77ec, 22:22 < twunder> f_iter2=0xbffa786c, user_data=0x0) at gnc-tree-view-account.c:287 22:22 < twunder> 287 gtk_tree_model_get(GTK_TREE_MODEL(model), &iter1, column, &str1, -1); 22:25 <@chris> (gdb) p ((GncTreeModelAccount *)model)->stamp 22:26 < twunder> $7 = 1476671929 22:26 <@chris> ok, matches iter2 22:30 < twunder> p (((GncTreeModelAccount *)model)->gnc_tree_model) 22:30 < twunder> $8 = {g_object = {g_type_instance = {g_class = 0x9424d78}, ref_count = 1, 22:30 < twunder> qdata = 0x9404458}} 22:36 < twunder> p *f_iter1 22:36 < twunder> $9 = {stamp = 0, user_data = 0x0, user_data2 = 0x0, user_data3 = 0x0} 22:36 < twunder> (gdb) p *f_iter2 22:36 < twunder> $10 = {stamp = -1607956811, user_data = 0x974a118, user_data2 = 0x997edd0, 22:36 < twunder> user_data3 = 0x0} f_iter2 is invalid.
Ah, ok. This is very probably a dup of bug #343362. And it makes me suspect you have a rather recent version of gtk+. *** This bug has been marked as a duplicate of 343362 ***
Using 14286: $ rpm -q gtk+-devel gtk2-devel gtk+-devel-1.2.10-39 gtk2-devel-2.6.10-2.fc4.4 My bad data file still causes gnucash to crash: Backtrace was generated from '/opt/gnucash/bin/gnucash' Using host libthread_db library "/lib/libthread_db.so.1". [Thread debugging using libthread_db enabled] [New Thread -1208710944 (LWP 24045)] 0x007bc402 in ?? ()
+ Trace 68585
Thread 1 (Thread -1208710944 (LWP 24045))
Current status from IRC: Tim could reproduce this crash while restoring the account tree page when opening gnucash, but it went away after he deleted his .books/filename file (bad Tim!). We can't currently reproduce, but we have no reason to think we've fixed this either.
Maybe this was fixed by r14709. Yeah, that's it. r14709. Seriously, I can imagine how the bug fixed by r14709 could cause this crash, but it doesn't explain why we couldn't reproduce it. Probably fixed by r14709, though. Resolving as fixed for now.
Fixed in r14709 means it's fixed in 2.0.2.
GnuCash bug tracking has moved to a new Bugzilla host. This bug has been copied to https://bugs.gnucash.org/show_bug.cgi?id=339656. Please update any external references or bookmarks.