src/date-time.cpp:171:GDateTime* unity::indicator::datetime::DateTime::get() const: assertion failed: (m_dt)

Bug #1848969 reported by Benjamin Drung
38
This bug affects 8 people
Affects Status Importance Assigned to Milestone
indicator-datetime (Ubuntu)
Confirmed
Critical
Unassigned
libical3 (Ubuntu)
Confirmed
Undecided
Unassigned

Bug Description

After upgrading to Ubuntu 19.10, indicator-datetime 15.10+19.10.20190819.1-0ubuntu1 crashes right from the start:

$ /usr/lib/x86_64-linux-gnu/indicator-datetime/indicator-datetime-service
(process:17641): Indicator-Datetime-WARNING **: 01:46:35.442: Unrecognized TZID: 'Etc/Utc'
(process:17641): Indicator-Datetime-WARNING **: 01:46:35.442: Unrecognized TZID: 'Etc/Utc'
(process:17641): Indicator-Datetime-WARNING **: 01:46:35.448: Unrecognized TZID: 'Etc/Utc'
(process:17641): libecal-CRITICAL **: 01:46:35.457: e_cal_component_datetime_get_value: assertion 'dt != NULL' failed
(process:17641): libecal-CRITICAL **: 01:46:35.457: e_cal_component_datetime_get_value: assertion 'dt != NULL' failed
(process:17641): libical-glib-CRITICAL **: 01:46:35.457: i_cal_time_as_timet: assertion 'I_CAL_IS_TIME (tt)' failed
(process:17641): libical-glib-CRITICAL **: 01:46:35.457: i_cal_time_as_timet: assertion 'I_CAL_IS_TIME (tt)' failed
[...]
(process:17641): libical-glib-CRITICAL **: 01:46:35.458: i_cal_time_as_timet: assertion 'I_CAL_IS_TIME (tt)' failed
(process:17641): libecal-CRITICAL **: 01:46:35.458: e_cal_component_datetime_get_value: assertion 'dt != NULL' failed
(process:17641): libecal-CRITICAL **: 01:46:35.458: e_cal_component_datetime_get_value: assertion 'dt != NULL' failed
(process:17641): libical-glib-CRITICAL **: 01:46:35.458: i_cal_time_as_timet: assertion 'I_CAL_IS_TIME (tt)' failed
(process:17641): libical-glib-CRITICAL **: 01:46:35.458: i_cal_time_as_timet: assertion 'I_CAL_IS_TIME (tt)' failed
**
Indicator-Datetime:ERROR:/build/indicator-datetime-P60bPZ/indicator-datetime-15.10+19.10.20190819.1/src/date-time.cpp:171:GDateTime* unity::indicator::datetime::DateTime::get() const: assertion failed: (m_dt)
Bail out! Indicator-Datetime:ERROR:/build/indicator-datetime-P60bPZ/indicator-datetime-15.10+19.10.20190819.1/src/date-time.cpp:171:GDateTime* unity::indicator::datetime::DateTime::get() const: assertion failed: (m_dt)

Revision history for this message
Benjamin Drung (bdrung) wrote :
Changed in indicator-datetime (Ubuntu):
importance: Undecided → Critical
status: New → Confirmed
Revision history for this message
Sebastien Bacher (seb128) wrote :

Could you get a backtrace using gdb?

tags: added: rls-ee-incoming rls-ff-incoming
Will Cooke (willcooke)
tags: added: desktop-trello-import
Revision history for this message
Martin Wimpress  (flexiondotorg) wrote : Automatically added comment
tags: removed: desktop-trello-import
Revision history for this message
Benjamin Drung (bdrung) wrote :
Download full text (4.2 KiB)

Here is the backtrace:

Thread 1 "indicator-datet" received signal SIGABRT, Aborted.
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
50 ../sysdeps/unix/sysv/linux/raise.c: Datei oder Verzeichnis nicht gefunden.
(gdb) bt
#0 0x00007ffff6eaa3eb in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1 0x00007ffff6e89899 in __GI_abort () at abort.c:79
#2 0x00007ffff7283b23 in g_assertion_message
    (domain=<optimized out>, file=<optimized out>, line=<optimized out>, func=0x5555556310c8 "GDateTime* unity::indicator::datetime::DateTime::get() const", message=<optimized out>)
    at ../../../glib/gtestutils.c:2912
#3 0x00007ffff72e032f in g_assertion_message_expr
    (domain=domain@entry=0x55555562d017 "Indicator-Datetime", file=file@entry=0x555555631108 "/build/indicator-datetime-P60bPZ/indicator-datetime-15.10+19.10.20190819.1/src/date-time.cpp", line=line@entry=171, func=func@entry=0x5555556310c8 "GDateTime* unity::indicator::datetime::DateTime::get() const", expr=expr@entry=0x5555556310a0 "m_dt") at ../../../glib/gtestutils.c:2938
#4 0x00005555555cda9c in unity::indicator::datetime::DateTime::get() const (this=0x7fffffffd878) at ./src/date-time.cpp:171
#5 0x00005555555cdd15 in unity::indicator::datetime::DateTime::get() const (this=0x7fffffffd878) at ./src/date-time.cpp:171
#6 0x00005555555cdd15 in unity::indicator::datetime::DateTime::format(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const
    (this=this@entry=0x7fffffffd878, fmt="%F %T %z") at ./src/date-time.cpp:179
#7 0x00005555555d2d83 in unity::indicator::datetime::EdsEngine::Impl::get_appointment(_ECalClient*, std::shared_ptr<_GCancellable>&, _ECalComponent*, _GTimeZone*) (client=<optimized out>, cancellable=Warnung: RTTI symbol not found for class 'std::_Sp_counted_deleter<_GCancellable*, unity::indicator::datetime::EdsEngine::Impl::Impl(std::shared_ptr<unity::indicator::datetime::Myself> const&)::{lambda(_GCancellable*)#1}, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>'
Warnung: RTTI symbol not found for class 'std::_Sp_counted_deleter<_GCancellable*, unity::indicator::datetime::EdsEngine::Impl::Impl(std::shared_ptr<unity::indicator::datetime::Myself> const&)::{lambda(_GCancellable*)#1}, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>'

std::shared_ptr<struct _GCancellable> (use count 23, weak count 0) = {...}, component=component@entry=0x7fffe405c560 [ECalComponent], gtz=gtz@entry=0x5555556f1960)
    at /usr/include/c++/9/bits/char_traits.h:300
#8 0x00005555555dfe7e in unity::indicator::datetime::EdsEngine::Impl::add_event_to_subtask(_ECalComponent*, unity::indicator::datetime::EdsEngine::Impl::ClientSubtask*, _GTimeZone*)
    (gtz=0x5555556f1960, subtask=0x555555774a50, component=0x7fffe405c560 [ECalComponent]) at ./src/engine-eds.cpp:1166
#9 0x00005555555dfe7e in unity::indicator::datetime::EdsEngine::Impl::on_event_fetch_list_done(void*) (gsubtask=0x555555774a50) at ./src/engine-eds.cpp:866
#10 0x00005555555dfe7e in unity::indicator::datetime::EdsEngine::Impl::fetch_detached_instances(_GObject*, _GAsyncResult*, void*) (res=<optimized out>, gsubtask=0x555555774a50)
    at ./src/engin...

Read more...

Revision history for this message
Sebastien Bacher (seb128) wrote :

Setting as rls-ff-notfixing since from a Desktop Team perspective/workflow it's our of our active set now and we are not going to consider it as a blocker. It's just a workflow detail though and doesn't mean the bug shouldn't be/isn't going to be fixed

tags: added: rls-ff-notfixing
removed: rls-ff-incoming
Revision history for this message
Benjamin Drung (bdrung) wrote :

The underlying issue is that i_cal_timezone_get_builtin_timezone_from_tzid and i_cal_timezone_get_builtin_timezone included from /usr/include/libical-glib/i-cal-timezone.h (libical-dev) fail to determine the timezone for "Etc/Utc" or "Etc/UTC".

Revision history for this message
Benjamin Drung (bdrung) wrote :

Correction: Applying following patch does not solve this assertion failure:

diff --git a/src/engine-eds.cpp b/src/engine-eds.cpp
index 153a9ea..8e2674f 100644
--- a/src/engine-eds.cpp
+++ b/src/engine-eds.cpp
@@ -879,6 +879,11 @@ private:
         if (tzid == nullptr)
             return nullptr;

+ // Workaround: Etc/Utc is not known to i_cal_timezone_get_builtin_timezone_from_tzid/i_cal_timezone_get_builtin_timezone
+ if (strcmp("Etc/Utc", tzid) == 0) {
+ return g_time_zone_new("Z");
+ }
+
         auto itz = i_cal_timezone_get_builtin_timezone_from_tzid(tzid); // usually works

         if (itz == nullptr) // fallback

Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in libical3 (Ubuntu):
status: New → Confirmed
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.