Indicator Applet Crashes with unity::indicator::datetime::DateTime::get() const: assertion failed: (m_dt)

Bug #1891740 reported by Mister X
42
This bug affects 8 people
Affects Status Importance Assigned to Milestone
indicator-datetime (Ubuntu)
Confirmed
Undecided
Unassigned

Bug Description

# Problem
When the calendar is synced to a Google calendar that contains "task" entries, the indicator applet crashes. These entries are not shown in evolution/gnome-calendar either, so this issue might originate in some library code.

# Error Message
The date-time indicator crashes with the following error message when started in the terminal:
Indicator-Datetime:ERROR:/build/indicator-datetime-SpDTj1/indicator-datetime-15.10+20.04.20200217/src/date-time.cpp:171:GDateTime* unity::indicator::datetime::DateTime::get() const: assertion failed: (m_dt)
Bail out! Indicator-Datetime:ERROR:/build/indicator-datetime-SpDTj1/indicator-datetime-15.10+20.04.20200217/src/date-time.cpp:171:GDateTime* unity::indicator::datetime::DateTime::get() const: assertion failed: (m_dt)

# Steps to reproduce
- Create a "task" in your Google calendar
- Sync the Google account with the calendar using the Online Accounts application
- the indicator applet will crash as soon as the data is synced

# Version
I am using the indicator applet version 15.10+20.04.20200217-0ubuntu1 on Ubuntu 20.04.

Revision history for this message
Mister X (julian-erhard) wrote :

I added some debugging output to the DateTime class to create stacktrace when a DateTime is assigned whose `m_dt` field is a `nullptr`.

The following is the stack trace when this happens:
./indicator-datetime-service(_ZN5unity9indicator8datetime8DateTimeaSERKS2_+0x45)[0x55abe5d8ba6f]
./indicator-datetime-service(_ZN5unity9indicator8datetime9EdsEngine4Impl15get_appointmentEP11_ECalClientRSt10shared_ptrI13_GCancellableEP14_ECalComponentP10_GTimeZone+0x1c4)[0x55abe5d9210f]
./indicator-datetime-service(_ZN5unity9indicator8datetime9EdsEngine4Impl20add_event_to_subtaskEP14_ECalComponentPNS3_13ClientSubtaskEP10_GTimeZone+0x9c)[0x55abe5d92ce3]
./indicator-datetime-service(_ZN5unity9indicator8datetime9EdsEngine4Impl24on_event_fetch_list_doneEPv+0x21c)[0x55abe5d9171f]
./indicator-datetime-service(_ZN5unity9indicator8datetime9EdsEngine4Impl24fetch_detached_instancesEP8_GObjectP13_GAsyncResultPv+0xe5)[0x55abe5d91221]
./indicator-datetime-service(_ZN5unity9indicator8datetime9EdsEngine4Impl29on_event_generated_list_readyEPv+0x26)[0x55abe5d9131f]
/lib/x86_64-linux-gnu/libecal-2.0.so.1(+0x25d85)[0x7f2834aedd85]
/lib/x86_64-linux-gnu/libecal-2.0.so.1(+0x2d204)[0x7f2834af5204]
/lib/x86_64-linux-gnu/libgio-2.0.so.0(g_simple_async_result_complete+0x86)[0x7f28346405c6]
/lib/x86_64-linux-gnu/libgio-2.0.so.0(+0xa068f)[0x7f283464068f]
/lib/x86_64-linux-gnu/libglib-2.0.so.0(g_main_context_dispatch+0x14e)[0x7f2834468e8e]
/lib/x86_64-linux-gnu/libglib-2.0.so.0(+0x52240)[0x7f2834469240]
/lib/x86_64-linux-gnu/libglib-2.0.so.0(g_main_loop_run+0x83)[0x7f2834469533]
./indicator-datetime-service(main+0x59b)[0x55abe5d5dffb]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf3)[0x7f28340450b3]
./indicator-datetime-service(_start+0x2e)[0x55abe5d5ccee]

Revision history for this message
Mister X (julian-erhard) wrote :

Ah, I see the comment box breaks lines. I add it as an attachment here.

Revision history for this message
Mister X (julian-erhard) wrote :

After investigating a bit more, the issue is probably that `e_cal_component_get_dtstart` returns a nullptr for a call in get_appointment in EdsEngine.

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

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

Changed in indicator-datetime (Ubuntu):
status: New → Confirmed
Revision history for this message
iPadGuy (ipad-guy-100) wrote :

SUMMARY

For me, the fix was to delete a recently-created task in Evolution.

DETAILS

I encountered this error a few hours ago, after I added a task in Evolution (something I rarely do). I set three reminders for the task. Within 10 minutes, the datetime indicator applet froze at 16:40. The Date tab in the Date/Time settng applet was also greyed-out, so I was unable to turn it back on. I re-booted three times, hoping it was an update issue, but all I saw was the datetime indicator crash repeatedly and then vanish within seconds of my logging in.

I searched /var/log/syslog for "crash" and found it was the datetime-indicator service that had crashed. I was able to confirm this with the following command:

systemctl status indicator-datetime --user

I tried restarting it, but I got a message that the service had crashed too many times.

Since I was fairly certain that this was related to the Evolution Task that I just created, I deleted it, restarted the service, and the datetime indicator came back.

Hopefully, this will help someone else.

Revision history for this message
J. Cappelletto (cappelletto) wrote :

Thanks iPadGuy,

I can confirm that task creation via Evolution triggers the issue.
After following your instructions and relaunching the indicator-datetime service, the indicator correctly reappeared in the indicator tray.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Bug attachments

Remote bug watches

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