Re: [Evolution] Proposal regarding apparent race condition on Evolution start-up



On Tue, 2020-02-11 at 13:19 +0100, Patrick O'Callaghan wrote:
Why should the user have to do this, or even know that it needs to be
done? If Evo depends on g-k-r for correct functioning, shouldn't it
take care of this itself?

        Hi,
that would probably work, if evolution (and especially evolution-
source-registry) talks to the gnome-keyring-daemon directly. It's not
the case, evolution(-data-server) uses libsecret and what libsecret
does in the background is up to it. The libsecret used to have issues
to work properly when the process it was connected to (through D-Bus)
stopped while it had been "using" it - it didn't try to re-connect or
something. I do not know whether it's still the case these days.

Anyway, the correct thing is that the D-Bus service the gnome-keyring-
daemon is providing is auto-started on demand. Thus whatever wants to
connect to it it also runs it (through D-Bus autostart and/or systemd,
depending on the system services setup).

Something like this is happening after login:
a) evolution-alarm-notify is started after login (unless disabled)
b) the a) requires evolution-source-registry, thus it is started too
   (over D-Bus well-known name)
c) the b) requires libsecret, which runs the gnome-keyring-daemon
d) the a) checks what calendars are configured and if any usable, then
   it runs evolution-calendar-factory (over D-Bus well-known name)
e) the d) may want evolution-source-registry, which is already running,
   thus it only connects to it
f) the d) eventually wants evolution-addressbook-factory (due to
   the Birthdays & Anniversaries calendar), thus it runs it (over
   D-Bus well-known name)
g) the f) connects to already running evolution-source-registry.

I guess, and only guess, that the gnome-keyring-daemon had been
killed/stopped somewhere after step c), keeping libsecret without its
counterpart.

What is the error message when you face this, please?

I do not know how to do that, but would you be able to check whether
the gnome-keyring-daemon was really restarted? Finding the reason for
its restart might be even harder. 

        Bye,
        Milan



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]