Assertion failure warning in GVariant construction of GWeatherLocation.serialize() for cities without location
Steps to reproduce:
- Run gnome-clocks search provider
- Open gnome-shell activities overview
- Type anything into the global search field. A single letter is enough to trigger this bug.
- Have a look at recent messages printed to syslog
What happens: gnome-clocks prints a few of these lines:
g_variant_new_string: assertion 'string != NULL' failed
What should happen: No assertion failures.
Additional information:
With fatal warnings enabled, I managed to get a backtrace using gdb. The short backtrace (bt
) followed by an all-threads full backtrace (t a a bt full
) are attached in this file.
As far as I understand code and Locations.xml data, It looks like the code expects more data on the locations, but the city of Amiens (this is where the first assertion failure happens) only has a name and coordinates but nothing else (i.e. no location data). After manually removing all affected cities (Amiens, Reims, Lárisa, Tanágra, The Hague, Utrecht, Prešov, Donakonda, Warangal, Paraná), the assertion failure does not happen any more.
I am not sure whether this is a bug in libgweather code, gnome-clocks (probably not) or the libgweather data containing the city "Amiens".
Installed software versions (Fedora 29 Beta):
- gnome-clocks-3.30.0-3.fc29.x86_64
- libgweather-3.28.2-3.fc29.x86_64
- geoclue2-2.4.11-1.fc29.x86_64
- glib2-2.58.1-1.fc29.x86_64
- geocode-glib-3.26.0-2.fc29.x86_64