Loads of criticals with certain file
Observations:
Let's start with this seemingly innocuous .gnumeric file. I've taken some steps to minimize it. (It started out MUCH bigger than this.)
Also this zero-length .csv file. I'm pretty sure the details don't matter here; any other spreadsheet would serve the purpose here:
Combine the two:
:; ../src/ssconvert --merge-to foo.gnumeric bad-merge.gnumeric null.csv
Adding sheets from file:///usr/src/gnome/gnumeric/test/bad-merge.gnumeric
Adding sheets from file:///usr/src/gnome/gnumeric/test/null.csv
(/usr/src/gnome/gnumeric/src/.libs/ssconvert:315): GLib-CRITICAL **: 12:10:26.216: g_hash_table_lookup: assertion 'hash_table != NULL' failed
Now for the fun part: Try to open the resulting spreadsheet:
:; ../src/gnumeric foo.gnumeric |& head -1000000 | wc
1000000 5000000 75000000
^C
: jsd@asclepias test ; ../src/gnumeric foo.gnumeric |& head -10
(/usr/src/gnome/gnumeric/src/.libs/gnumeric:374): librsvg-CRITICAL **: 12:11:47.264: rsvg_handle_render_cairo_sub: assertion 'handle != NULL' failed
(/usr/src/gnome/gnumeric/src/.libs/gnumeric:374): librsvg-CRITICAL **: 12:11:47.264: rsvg_handle_render_cairo_sub: assertion 'handle != NULL' failed
(/usr/src/gnome/gnumeric/src/.libs/gnumeric:374): librsvg-CRITICAL **: 12:11:47.264: rsvg_handle_render_cairo_sub: assertion 'handle != NULL' failed
(/usr/src/gnome/gnumeric/src/.libs/gnumeric:374): librsvg-CRITICAL **: 12:11:47.264: rsvg_handle_render_cairo_sub: assertion 'handle != NULL' failed
(/usr/src/gnome/gnumeric/src/.libs/gnumeric:374): librsvg-CRITICAL **: 12:11:47.264: rsvg_handle_render_cairo_sub: assertion 'handle != NULL' failed
^C
I observe literally millions of error messages. CPU usage goes to 100%. The spreadsheet never actually opens.
Remarks:
Based on other observations (not detailed here) I suspect the original ssconvert error message g_hash_table_lookup: assertion 'hash_table != NULL' failed
is very serious. It seems to be the harbinger of badly damaged output files.
This is 100% reproducible chez moi.
Let me know if I can be of any assistance (stack traces or whatever).
Platform:
This is observed using a recent ssconvert version '1.12.48' compiled from git sources. FWIW it is also observed using a years-old ssconvert version '1.12.38'.
:; uname -srmo
Linux 4.19.42+ x86_64 GNU/Linux
:; lsb_release -a
LSB Version: core-9.20170808ubuntu1-noarch:cxx-3.0-amd64:cxx-3.0-noarch:cxx-3.1-amd64:cxx-3.1-noarch:cxx-3.2-amd64:cxx-3.2-noarch:cxx-4.0-amd64:cxx-4.0-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-3.1-amd64:desktop-3.1-noarch:desktop-3.2-amd64:desktop-3.2-noarch:desktop-4.0-amd64:desktop-4.0-noarch:desktop-4.1-amd64:desktop-4.1-noarch:graphics-2.0-amd64:graphics-2.0-noarch:graphics-3.0-amd64:graphics-3.0-noarch:graphics-3.1-amd64:graphics-3.1-noarch:graphics-3.2-amd64:graphics-3.2-noarch:graphics-4.0-amd64:graphics-4.0-noarch:graphics-4.1-amd64:graphics-4.1-noarch:multimedia-3.2-amd64:multimedia-3.2-noarch:multimedia-4.0-amd64:multimedia-4.0-noarch:multimedia-4.1-amd64:multimedia-4.1-noarch:printing-9.20170808ubuntu1-noarch:qt4-3.1-amd64:qt4-3.1-noarch:security-9.20170808ubuntu1-noarch
Distributor ID: Ubuntu
Description: Ubuntu 18.04.4 LTS
Release: 18.04
Codename: bionic
:; /usr/src/gnome/gnumeric/src/ssconvert --version
ssconvert version '1.12.48'
datadir := '/usr/src/gnome/install/share/gnumeric/1.12.48'
libdir := '/usr/src/gnome/gnumeric'
:; git log
commit 70e5c389e5d0cd4a2f2aa6c3b6182501384537e1
Date: Sun May 31 18:46:19 2020 -0400