Bug#1007226: GLib:ERROR:../../../glib/gtimezone.c:2051:g_time_zone_new_offset: assertion failed: (tz != NULL)
Simon McVittie
smcv at debian.org
Mon Mar 14 10:05:11 GMT 2022
Control: tags -1 + moreinfo
On Sun, 13 Mar 2022 at 22:15:44 -0400, Robbie Harwood (frozencemetery) wrote:
> GLib:ERROR:../../../glib/gtimezone.c:2051:g_time_zone_new_offset: assertion failed: (tz != NULL)
The failing assertion is:
/* Seemingly, we should be using @seconds directly to set the
* #TransitionInfo.gmt_offset to avoid all this string building and parsing.
* However, we always need to set the #GTimeZone.name to a constructed
* string anyway, so we might as well reuse its code.
* g_time_zone_new_identifier() should never fail in this situation. */
identifier = g_strdup_printf ("%c%02u:%02u:%02u",
(seconds >= 0) ? '+' : '-',
(ABS (seconds) / 60) / 60,
(ABS (seconds) / 60) % 60,
ABS (seconds) % 60);
tz = g_time_zone_new_identifier (identifier);
g_assert (tz != NULL); <-- HERE
g_free (identifier);
... so we're trying to parse something like +01:30:00 or -07:00:00 and
convert it into a time zone ID, which should always succeed (it should
end up in zone_for_constant_offset() which is meant to parse all strings
of this form successfully).
I think we will really need a backtrace with at least GLib debug symbols,
and preferably GMime too, so that we can tell what identifier we're trying
to parse here. (Or you could try loading each individual message into a
GMime parser, but installing more debug symbols seems easier!)
The only possible failing case I can think of is that perhaps
(ABS (seconds) / 60) / 60 has somehow ended up with 3 digits?
> (I don't know what's going on with the missing symbols - debuginfod fetched
> the rest, but not those.)
The debuginfod server might not have access to symbols for experimental,
and might not have all the latest symbols for unstable either? Please try
adding debug symbols the old-fashioned way, by adding apt sources for at
least one of these (corresponding to where your GLib and GMime come from)
deb http://deb.debian.org/debian-debug/ unstable-debug main
deb http://deb.debian.org/debian-debug/ experimental-debug main
and then installing libglib2.0-0-dbgsym and libgmime-3.0-0-dbgsym.
> Possibly related is that my timezone switched to daylight savings today.
What time zone is that?
> Versions of packages libglib2.0-0 recommends:
> ii libglib2.0-data 2.70.4-1
I notice you're currently using experimental GLib, but unstable
libglib2.0-data; although that shouldn't be a practical problem
(libglib2.0-data currently only contains localization data, so the worst
effect I'd expect to see would be that some messages would stay in English
even if you were using a non-English locale).
smcv
More information about the pkg-gnome-maintainers
mailing list