GNOME Bugzilla – Bug 728942
Fails to pair user with attendee in invitation response
Last modified: 2014-07-03 16:44:27 UTC
Looks like a Regression from Bug 686024 All accepted meeting requests are sent as 'Tentative'
Thanks for a bug report. I tried to reproduce this, but it works properly for me, the meeting response is received as Accepted to the meeting organizer. Do you know the server version you connect to, please? I tried Exchange 2010. Could you test what the evolution-ews sends to the server, please? You can do that when you run evolution-calendar-factory like: $ EWS_DEBUG=2 /usr/libexec/evolution-calendar-factory -w &>log.txt (actual path for the evolution-calendar-factory may be different, it depends on your distribution), then run evolution and Accept the meeting. Once it's done, close evolution and search the log.txt for "ReferenceItemId" (quotes for clarity only). There is shown what the evolution-ews sent to the server. Mine log shows: ...<AcceptItem><ReferenceItemId Id="..." ChangeKey="..."/></AcceptItem>... which corresponds to what I chose in the UI.
I logged the request as per your instrutions, but in my case the request is shown as 'TentativelyAcceptItem': <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><SOAP-ENV:Header><types:RequestServerVersion xmlns:types="http://schemas.microsoft.com/exchange/services/2006/types" Version="Exchange2010_SP2"/></SOAP-ENV:Header><SOAP-ENV:Body xmlns:messages="http://schemas.microsoft.com/exchange/services/2006/messages"><messages:CreateItem xmlns="http://schemas.microsoft.com/exchange/services/2006/types" MessageDisposition="SendAndSaveCopy"><messages:Items><TentativelyAcceptItem><ReferenceItemId Id="AAMkADdmNDZhZWZjLTc4YWQtNGIzYy1hYjNlLWJmYzMxZjY1ODk0NQBGAAAAAABfqIbkV5roQIiNA5kR8WDoBwD4pwtVcojARpS6Q9b90kbiAAAFzkV/AACjE7M2AWRVRKQH43meYCgvAABZnvddAAA=" ChangeKey="DwAAABYAAACjE7M2AWRVRKQH43meYCgvAABZ10uV"/></TentativelyAcceptItem></messages:Items></messages:CreateItem></SOAP-ENV:Body></SOAP-ENV:Envelope> I attached the complete log with several attempts: * evo_cal_factory.log
Created attachment 275956 [details] debug log of evolution calendar factory process
Interesting. That might mean that the UI set incorrect value. Could you provide your versions for evolution-data-server, evolution, evolution-ews, libical and gtk3, please?
This might be possible. I use KDE as my desktop, but need evolution+evolution-ews to connect to my company's exchange server. Until now meeting invites worked flawlessly. I'm on Arch Linux and use the latest 3.12.1 packages from the standard repositories: pacman output: extra/evolution 3.12.1-1 (gnome-extra) [installed] extra/evolution-data-server 3.12.1-2 [installed] extra/evolution-ews 3.12.1-1 [installed] extra/gtk3 3.12.1-2 [installed] extra/libical 1.0-3 [installed] local gtk config in '~/.config/gtk-3.0/settings.ini' : [Settings] gtk-font-name=Verdana Regular 10 gtk-theme-name=Adwaita gtk-icon-theme-name=oxygen gtk-fallback-icon-theme=gnome gtk-toolbar-style=GTK_TOOLBAR_ICONS gtk-menu-images=0 gtk-button-images=1
Any news on this one? Do you need more information?
Oops, I'm sorry, I missed your previous information update. I installed KDE (in a Fedora installation) with the same versions of the packages as you have (those named at comment #5), which should be also the same, maybe except of the distro-specific customizations, if any. When I click "Accepted", the sender receives Accepted; when I click "Decline", the sender receives "Declined". These buttons are handled in WebKitGTK, but it feel unlikely that the WebKitGTK would report wrong button index. Mine WebKitGTK is packaged as webkitgtk3 in Fedora and is version 2.4.0 here. I also updated webkitgtk3 to 2.4.2 and it still works as expected for me.
Sorry for the late reply, but I'm running into the weirdest problems with evolution(-ews) lately... I thought that my problem might be caused by some error in my evolution config, so i deleted my evolution/gnome config (.config/evolution, .cache/evolution, .local/share/evolution, .gnome*, .config/dconf, .config/gconf) and started from scratch. However, after configuring my Exchange account, I can't sync mail anymore at all. Calender and Contacts get synched however. Also, Evolution seems to be confused about its online status - I get errors about not being able to sync in 'Offline Mode' when being online. If I 'Go Offline', it tries to start synching and fails with a lot of errors like these: ------------- (evolution:12821): Gtk-WARNING **: Failed to register client: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.gnome.SessionManager was not provided by any .service files (evolution:12821): camel-WARNING **: CamelMaildirStore::get_folder_sync() reported failure without setting its GError (evolution:12821): camel-local-provider-CRITICAL **: camel_local_folder_construct: assertion 'fi != NULL' failed ** (evolution:12821): CRITICAL **: e_mail_session_get_local_folder: assertion 'CAMEL_IS_FOLDER (folder)' failed (evolution:12821): camel-ews-provider-WARNING **: camel_ews_folder_update_thread: You must be working online to complete this operation ** (evolution:12821): CRITICAL **: e_mail_session_get_local_folder: assertion 'CAMEL_IS_FOLDER (folder)' failed ------------- I must admit I'm a little bit at a loss here. The same configuration works flawlessly on my notebook which runs arch linux with the same packages, so I don't know what to look at next. Do you have any ideas what might be the culprit? thanx in advance and br, d.
Now that I'm thinking of it, might this by dbus-related?
Playing with internal application files while the application is running tends to break things heavily. Even if you didn't have running evolution itself, then some related processes in the background could be still there. $ ps ax | grep evolution will show you all the related evolution processes. The error about SourceManager means that evolution-source-registry failed to start, or evolution itself failed to connect to it. Usual fix is to re-login (or restart) the machine. This SourceManager is connected through D-Bus, hence the message on the console.
I always did shut down evolution and its background processes before removing / changing any files, so there should be no runtime issues. However I'm still stuck. To be sure, I - shut down all evolution processes - removed all evolution related config files - updated arch linux - rebooted the system Still, on evolution startup I immediately get those errors: =========== (evolution:4904): Gtk-WARNING **: Failed to register client: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.gnome.SessionManager was not provided by any .service files (evolution:4904): camel-WARNING **: CamelMaildirStore::get_folder_sync() reported failure without setting its GError (evolution:4904): camel-local-provider-CRITICAL **: camel_local_folder_construct: assertion 'fi != NULL' failed ** (evolution:4904): CRITICAL **: e_mail_session_get_local_folder: assertion 'CAMEL_IS_FOLDER (folder)' failed =========== And after configuring my mailserver profile, it won't sync. On later start-ups it just complains about GDBus and being offline, although it is clearly not: =========== (evolution:6651): Gtk-WARNING **: Failed to register client: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.gnome.SessionManager was not provided by any .service files java version "1.7.0_55" OpenJDK Runtime Environment (IcedTea 2.4.7) (ArchLinux build 7.u55_2.4.7-1-x86_64) OpenJDK 64-Bit Server VM (build 24.51-b03, mixed mode) (evolution:6651): evolution-mail-WARNING **: Failed to refresh folder 'Exchange: Inbox': You must be working online to complete this operation =========== Is there some communication problem between evolution and one of its background processes? these processes are running after evolution startup: =========== b2c 1093 1 0 07:55 ? S 0:00 dbus-launch --sh-syntax --exit-with-session b2c 1094 1 0 07:55 ? Ss 0:00 /usr/bin/dbus-daemon --fork --print-pid 4 --print-address 6 --session b2c 1119 1 0 07:55 ? Ss 0:00 /usr/bin/gpg-agent -s --daemon --pinentry-program /usr/bin/pinentry-qt4 --write-env-file b2c 4906 1 0 08:03 ? Sl 0:00 /usr/lib/at-spi2-core/at-spi-bus-launcher b2c 4910 4906 0 08:03 ? S 0:00 \_ /usr/bin/dbus-daemon --config-file=/etc/at-spi2/accessibility.conf --nofork --print-address 3 b2c 4913 1 0 08:03 ? Sl 0:00 /usr/lib/at-spi2-core/at-spi2-registryd --use-gnome-session b2c 4920 1 0 08:03 ? SLl 0:00 /usr/lib/evolution-data-server/evolution-source-registry b2c 4927 1 0 08:03 ? Sl 0:00 /usr/lib/gnome-online-accounts/goa-daemon b2c 4945 1 0 08:03 pts/6 Sl 0:00 /usr/lib/evolution/3.12/evolution-alarm-notify b2c 4947 1 0 08:03 ? Sl 0:00 /usr/lib/dconf/dconf-service b2c 4963 1 0 08:03 ? Sl 0:03 /usr/lib/evolution-data-server/evolution-calendar-factory b2c 6475 1 0 08:15 ? SLl 0:00 /usr/bin/gnome-keyring-daemon --start --foreground --components=secrets
(In reply to comment #11) > (evolution:4904): Gtk-WARNING **: Failed to register client: > GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name > org.gnome.SessionManager was not provided by any .service files This one is harm-less and comes from gtk, if I recall correctly. It basicallt means that you are not running gnome-shell. > (evolution:4904): camel-WARNING **: CamelMaildirStore::get_folder_sync() > reported failure without setting its GError > (evolution:4904): camel-local-provider-CRITICAL **: > camel_local_folder_construct: assertion 'fi != NULL' failed > ** (evolution:4904): CRITICAL **: e_mail_session_get_local_folder: assertion > 'CAMEL_IS_FOLDER (folder)' failed The last time I saw this one it was when one of the On This Computer folders didn't have a proper Maildir structure. Please check in ~/.local/share/evolution/mail/local/ that the folder has 'cur', 'new' and 'tmp' subfolders, the same as its immediate subfolders (which begin with a dot, like .Outbox). What I saw was that here was only a 'cur' subfolder, but not the other two. > (evolution:6651): evolution-mail-WARNING **: Failed to refresh folder > 'Exchange: Inbox': You must be working online to complete this operation I guess it's about proxy settings. Could you verify your Edit->Preferences->Network Preferences, whether you have proxy disabled (in case it's not needed)? I'd use "Direct connection" or configure proxy manually in Evolution, to avoid issues from incorrectly filled proxies in the system, especially when you do not run gnome-shell. Please see bug #708175 for more detailed information for this "claimed offline state". In any case, none of these issues should cause the 'Tentative' meeting response. There is an option to debug this with gdb, but I do not know how much you know gdb. Let's try it. Please install also packages with debug information for evolution and evolution-ews. Then run evolution with this command under gdb: $ gdb evolution --ex "b itip-view.c:view_response_cb" --ex r --ex "bt" \ --ex "b itip-view.c:update_item" --ex c --ex bt --ex "p response" \ --ex "b e_cal_client_receive_objects" --ex c \ --ex "printf \"%s\\n\", icalcomponent_as_ical_string (icalcomp)" \ --ex "d br 1" --ex "d br 2" --ex "d br 3" --ex c You'll be asked immediately after the start something like this: No source file named itip-view.c. Make breakpoint pending on future shared library load? (y or [n]) y to which you should answer 'y'. After that evolution will run. Just select a test meeting and click the Accept button as an answer to an organizer. After that the terminal will request your attendance. Just press Enter whenever asked for anything. There will be printed couple backtraces and the generated component, which is passed to evolution-ews. Once done, all the breakpoints are deleted and evolution runs like before. You can close it, but keep what was printed on the console since you clicked the Accept button. Remove any private information from it (preferably use some test meeting) and attach the output here. I'll see whether it passes the correct information to the evolution-ews.
Thank you for the detailed comments and your support, but at the moment I can't get evolution-ews to connect to our Exchange server anymore. I tried for days, even starting with a fresh home directory, but to no avail. I tested with my laptop too, which does NOT have the problem, and could not reproduce it there. So I guess, whatever messed up my workstation must have been the culprit in the first place. Sorry for having bothered you for so long, and if I ever find out what's up with my workstation, I'll post the details.
No problem at all. I'd also like to know the cause, maybe your workstation faced just some corner case. Who knows.
Looks like you fixed the problem I ran into: https://git.gnome.org/browse/evolution-ews/commit/?h=evolution-ews-3-12 It's all good in 3.13.3 ;)
Was this a side-effect of bug 731585 too? That might be unexpected by me, but good it finally works properly for you too.
Created attachment 279758 [details] Evolution calendar factory debug log My EWS debug log
I'm seing the same issue with Evolution 3.12.3 on Fedora (Rawhide). Component versions: evolution-data-server-3.12.3-1.fc21.x86_64 evolution-3.12.3-3.fc21.x86_64 evolution-ews-3.12.3-1.fc21.x86_64 libical-1.0-5.fc21.x86_64 gtk3-3.13.3-2.fc21.x86_64
Hmm, running gnome-shell with below package versions and when I mouse-click "Accept" in the preview panel of the Mail view window, then the meeting is received as accepted - confirmed in Exchange's 2010 Server's OWA (web interface). EWS account configured directly in evolution, though it might not have much impact, from my point of view. evolution-data-server-3.12.3-1.fc21.x86_64 evolution-3.12.3-3.fc21.x86_64 evolution-ews-3.12.3-1.fc21.x86_64 libical-1.0-5.fc21.x86_64 gtk3-3.13.3-2.fc21.x86_64 webkitgtk3-2.4.3-2.fc21.x86_64 gnome-shell-3.13.3-1.fc21.x86_64
I'm reopening this due to given more details from Jared on IRC. The issue is that the attendee's email listed in the event doesn't match the one associated in the calendar, thus the response is not known, which defaults to tentative. I can partially workaround the issue when there is only one attendee, but it'll be harder when there is more. I think I'll do my best to catch the right attendee, but if it'll still fail, then I will rather claim an error, than silently send incorrect response.
I made couple changes in the calendar backend to try to find the user harder. During that I realized that the backend didn't have set user's email, thus it could not find a match if there were more than one meeting attendee. That means that most likely only the last chunk of the patch, in e_cal_backend_ews_constructed, is a sufficient fix, but I'd rather try harder with the attendee search. There is also returned an error about Unknown user, when the user couldn't be found between attendees. It's a lame error message "Unknown user" in 3.12, but a more descriptive message "Cannot find user 'user@example.com' between attendees" in master. Other the patch in stable is the same as in master. Created commit 6f7bbda in eds master (3.13.4+) [1] Created commit e4435a7 in ews evolution-ews-3-12 (3.12.4+) [1] https://git.gnome.org/browse/evolution-ews/commit/?id=6f7bbda