Comment 61 for bug 151536

Revision history for this message
C de-Avillez (hggdh2) wrote :

Hum. Re-reading my comment above I decided I did not fully explain the GDB runs I asked for. Here it is, hopefully clearer now.

It might help to have a sequence of GDB backtraces (for the same looping E-D-S). The worst possible outcome is it will not help any, and the best possible outcome is it will show us what is going on -- which means this may be fixed!

So what I would like:

1* when you find yourself with a looping E-D-S, run GDB against it (easier if done from a terminal within the X session):

% gdb -p `pidof evolution-data-server-2.22`

2* After GDB prints out the prompt, type in the following commands ('(gdb)' is the usual GDB prompt):

(gdb) set pagination off
(gdb) set logging file e-d-s-gdb.log
(gdb) set logging on
(gdb) set print pretty
(gdb) set print array

3* Now the GDB loop starts: we need to print the currently-running thread, then all threads, then continue E-D-S

(gdb) bt full
[some output generated]
(gdb) thread apply all bt
[lots of lines printed out]
(gdb) continue

4* E-D-S resumes its loop. Wait a bit, some few seconds (it does not really make any difference, since we do not know what is going on), then go back to step (3*) (after you enter GDB, you will have to CTRL-C to get the GDB prompt again). Do it some 5 times.

5* After the last set of commands in (3*), quit GDB:

(gdb) quit

6* now you can cancel this E-D-S run:

% evolution --force-shutdown

And on the next Evo startup you should not see the loop. Until you reboot, at least...