GNOME Bugzilla – Bug 687877
Trying to search gal with the "Any field contains" option fails
Last modified: 2012-11-14 22:39:35 UTC
I'm running this morning's git/master of evolution and all related programs. The gal search works as expected for "Name contains" or "Email begins with" options; however, trying to search with "Any field contains" leads to the following error message: Unable to perform search. This query did not complete successfully. GDBus.Error:org.gtk.GDBus.UnmappedGError.Quark._e_2dbook_2dbackend_2dsqlitedb_2derror_2dquark.Code0: no such column: x
Thanks for a bug report. I can reproduce it too. It seems to be a regression from bug #686678, though such search works on local books. I'll investigate further.
Might be some issue in the sqlite db summary stored in ews. This had been copied into eds and ews should use that one, also because there were done improvements in the eds on the summary, but it did not yet. I made ews use the eds' version of sqlite db summary and I can search with "any fields" now. Created commit 82c1301 in ews master (3.7.2+)
Hi Milan, Thanks I updated all of evo and related parts to the git/master and reinstalled. EWS works for mail, but does nothing when I try the gal. My suspicion is that something is broken with authentication in that I got a popup asking for the ews account password when I 1st started up. I tried restarting evo and the factories but that didn't help. I also tried just restarting evo. I don't get a password prompt, but only the e-mail address begins with lookup works.
It sounds like the account lost the setup for "cache book for offline", because that's what makes the "email address begins" work, but not the other search types.
Hi Milan, The cache offline address book setting in Preferences->Accounts->EWS Account->Edit->Receiving Options is set. I tried various things: 1. Toggled the setting on and off. 2. Deleting .cache/evolution/addressbook and restarting evolution. Nothing worked. I'm reopening this.
If I recall correctly the ews backend doesn't listen for changes in the properties properly, a restart of factory is needed. But of course, it can be something else. Could you the addressbook factory on the console, and capture it's output, please? There should be some prints when accessing the GAL, there are some for me.
I did as you said in comment 6. Here's the output: opt/gnome/libexec/evolution-addressbook-factory Registering EBookBackendFileFactory ('local') Registering EBookBackendVCFFactory ('vcf') Registering EBookBackendLDAPFactory ('ldap') Registering EBookBackendGoogleFactory ('google') Registering EBookBackendWebdavFactory ('webdav') Registering EBookBackendEwsFactory ('ews') Server is up and running... Bus name 'org.gnome.evolution.dataserver.AddressBook4' acquired. (evolution-addressbook-factory:23399): libedata-book-CRITICAL **: e_book_backend_sqlitedb_new: assertion `emailid != NULL' failed That's it. During this time I tried name contains, any field contains, and e-mail starts with searches. Only the last one worked.
I bet this is the issue: > (evolution-addressbook-factory:23399): libedata-book-CRITICAL **: > e_book_backend_sqlitedb_new: assertion `emailid != NULL' failed could you grep your ~/.config/evolution/sources for "Global Address List" (quotes for clarity only), which should give your your ews account .source. It should have section [Ews Backend] and it should have an Email key. That yours is most likely empty. How did you create your ews account, in Evolution or in Gnome Online Accounts? You can also see if you have OabOffline set to true and OalSelected is for you in that section. If you cannot find the .source file base don the "Global Address List", then search for "Ews Backend" - the section name.
There is an ews backend section; here are its contents: FilterInbox=false CheckAll=true Email= FilterJunk=false FilterJunkInbox=false GalUid=1352053603.4426.2@montroll.chem.mcgill.ca Hosturl=https://exchange.mcgill.ca/ews/exchange.asmx Oaburl=https://exchange.mcgill.ca/OAB/b57351b8-8acb-4605-ab00-07cc7608752c/oab.xml OabOffline=true OalSelected=949d8753-a7d6-4411-925f-c1a8349cce66:Global Address List Timeout=120 The acount was created using evolution, not GOA.
I updated to the git/master and recompiled. The gal still doesn't work properly. I thought that I could delete the ews account and start over. When I pressed "Fetch URL" in the setup evo crashed. Here's the backtrace: Program terminated with signal 11, Segmentation fault.
+ Trace 231174
Thread 5 (Thread 0x8ecffb70 (LWP 22154))
The crash is caused in libsoup, I opened bug #688330 for it, and attached a proposed patch there. (In reply to comment #9) > FilterInbox=false > CheckAll=true > Email= ^^^^^ This is it, the Email should be filled. The other values look fine, thus I guess the only problem is with the email missing. I believe the account reconfiguration will fix the issue, because my newly created EWS account has the email filled as expected. Usually, maybe I do something "wrong", that it works for me, but not for you.
OK I applied the patch for libsoup and rebuilt. Starting and exiting my gnome session, and editing the ews account preferences populates the Email= field. Evolution now updates the ews cache and all the searches work as expected. Thanks.