On Fr, 2011-05-13 at 12:42 +0100, Christophe Dumez wrote:
> On my machine some of the insertions often fail with error:

What is the error explanation in that case? See gError->message.

When I run the test program, I see that e-addressbook-factory starts
consuming 100% CPU time. "strace -p <pid>" shows that not a single
system call is done. Attaching with gdb and a "thread apply all bt"
shows that there are roughly 15 threads, most of them in libdb inside
libthread and/or __os_yield(). Can you confirm similar behavior?

My hypothesis is that we either run into a real bug in libdb (no
progress made executing multiple concurrent writes) or a corner case
where progress is extremely slow. Something like this made EDS look bad
in the tracker<->EDS comparison:

In libebook, I get a "Timeout was reached" because the asynchronous
operation doesn't complete quickly enough. Same for the attempt to
delete the contacts. The gError->code is 24, which is indeed

Running dbus-monitor, I see that removeContacts is called, but there's
no reply because the D-Bus server is busy.

I tried the LD_PRELOAD=libeatmydata.so workaround suggested in the mail
above and it does avoid the problem.

Is there anyone around who understand libdb well enough to shed some
light on this? What is a proper fix?

Bye, Patrick Ohly

evolution-hackers mailing list
To change your list options or unsubscribe, visit ...

Reply via email to