Normally restarting the EAS service would do the trick for me in the past, but now the service ends up in a failed state.
[nemo@XperiaXA2 ~]$ systemctl --user status sailfish-eas
● sailfish-eas.service - sailfish-eas daemon
Loaded: loaded (/usr/lib/systemd/user/sailfish-eas.service; disabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Tue 2023-02-21 19:13:58 CET; 25min ago
Process: 16053 ExecStart=/usr/bin/invoker -o --type=qt5 --global-syms /usr/bin/sailfish-eas (code=exited, stat
us=1/FAILURE)
Main PID: 16053 (code=exited, status=1/FAILURE)
Looks like the process being started by the service fails to run correctly and is exited. When checking all services that are failed only sailfish-eas pops up.
Continuing my investigation. When I run the sailfish-eas command as user I get the following output.
[nemo@XperiaXA2 ~]$ sailfish-eas
** (process:21311): WARNING **: 19:56:51.787: Cannot create directory: /home/nemo/.local/share/system/privileged/Accounts/libaccounts-glib
** (process:21311): WARNING **: 19:56:51.788: Error opening accounts DB: unable to open database file
** (process:21311): WARNING **: 19:56:51.789: Cannot create directory: /home/nemo/.local/share/system/privileged/Accounts/libaccounts-glib
** (process:21311): WARNING **: 19:56:51.789: Error opening accounts DB: unable to open database file
** (process:21311): CRITICAL **: 19:56:51.792: ag_manager_list_enabled: assertion 'AG_IS_MANAGER (manager)' failed
(process:21311): GLib-GObject-WARNING **: 19:56:57.044: invalid (NULL) pointer instance
(process:21311): GLib-GObject-CRITICAL **: 19:56:57.044: g_signal_handlers_disconnect_matched: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
(process:21311): GLib-GObject-WARNING **: 19:56:57.044: invalid (NULL) pointer instance
(process:21311): GLib-GObject-CRITICAL **: 19:56:57.044: g_signal_handlers_disconnect_matched: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
(process:21311): GLib-GObject-WARNING **: 19:56:57.045: invalid (NULL) pointer instance
(process:21311): GLib-GObject-CRITICAL **: 19:56:57.045: g_signal_handlers_disconnect_matched: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
(process:21311): GLib-GObject-WARNING **: 19:56:57.045: invalid (NULL) pointer instance
(process:21311): GLib-GObject-CRITICAL **: 19:56:57.045: g_signal_handlers_disconnect_matched: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
(process:21311): GLib-GObject-CRITICAL **: 19:56:57.045: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
(process:21311): GLib-GObject-WARNING **: 19:56:57.045: invalid (NULL) pointer instance
(process:21311): GLib-GObject-CRITICAL **: 19:56:57.045: g_signal_handlers_disconnect_matched: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
(process:21311): GLib-GObject-WARNING **: 19:56:57.045: invalid (NULL) pointer instance
(process:21311): GLib-GObject-CRITICAL **: 19:56:57.045: g_signal_handlers_disconnect_matched: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
(process:21311): GLib-GObject-WARNING **: 19:56:57.045: invalid (NULL) pointer instance
(process:21311): GLib-GObject-CRITICAL **: 19:56:57.046: g_signal_handlers_disconnect_matched: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
(process:21311): GLib-GObject-WARNING **: 19:56:57.046: invalid (NULL) pointer instance
(process:21311): GLib-GObject-CRITICAL **: 19:56:57.046: g_signal_handlers_disconnect_matched: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
(process:21311): GLib-GObject-CRITICAL **: 19:56:57.046: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
The first lines indicate to a permission problem. The NULL pointer problems after that could be causes by the missing database access. The directory exists, but is not accessible for the user. The directory /home/nemo/.local/share/system/privileged is not accessible by the user.
[root@XperiaXA2 system]# ls -l
total 8
drwxr-xr-x 4 nemo privileg 4096 Apr 27 2020 Contacts
drwxrwx--- 19 privileg privileg 4096 Feb 10 22:59 privileged
Most of the directories inside privileged are owned by nemo and are part of group privileged. BTW nemo is not part of the group privileged. user sailfish-mdm is the only one part of group privileged, besides the user privileged. And sailfish-mdm is probably linked to the MDM (Mobile device management) Framework. Hopefully someone has some pointers were the look next.
Found something else. There is a typo in sailfish-eas.service
[root@XperiaXA2 user]# cat sailfish-eas.service
[Unit]
Description=sailfish-eas daemon
Requires=sailfish-eas-accounts-check.service
Requires=booster-qt5.service
Wants=messageserver5.service
After=sailfish-eas-accounts-accounts-check.service
After=messageserver5.service
After=booster-qt5.service
[Service]
Type=dbus
BusName=org.sailfishos.easdaemon
ExecStart=/usr/bin/invoker -o --type=qt5 --global-syms /usr/bin/sailfish-eas
Restart=on-failure
RestartSec=1
[Install]
WantedBy=user-session.target
After=sailfish-eas-accounts-accounts-check.service. Is there an editor in Sailfish OS I can use to change the file?
Editor found. Vi is installed on the system. Correcting the service file did not solve the problem.