Bug 493661 - evolution-mapi crashes Evolution after initial authentication
Summary: evolution-mapi crashes Evolution after initial authentication
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: evolution-mapi
Version: rawhide
Hardware: x86_64
OS: Linux
low
medium
Target Milestone: ---
Assignee: Matthew Barnes
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2009-04-02 14:50 UTC by Sam Garrett
Modified: 2010-12-02 21:53 UTC (History)
9 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2009-04-18 18:33:22 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)
Full output of evolution session run from terminal, 2>&1 (3.00 KB, text/plain)
2009-04-02 14:50 UTC, Sam Garrett
no flags Details

Description Sam Garrett 2009-04-02 14:50:19 UTC
Created attachment 337831 [details]
Full output of evolution session run from terminal, 2>&1

Description of problem:
When using Evolution with the evolution-mapi plugin, Evolution crashes after clicking the "Authenticate" button during account setup.  The crash only occurs if a valid server and auth credentials are supplied.

Looking at terminal output, it appears to successfully authenticate and retrieve the folder list, then dies without warning, error, or explanation.

Terminal output attached.

Version-Release number of selected component (if applicable):
evolution-2.26.0-1.fc11.x86_64
evolution-mapi-0.26.0.1-1.fc11.x86_64
openchange-0.8.2-1.fc11.x86_64

How reproducible:
Every time

Steps to Reproduce:
1. Install evolution-mapi
2. Attempt to create an account on server type "Exchange MAPI"
3. Click Authenticate
  
Actual results:
Evolution crashes

Expected results:
Access to my Exchange 2007 email account

Additional info:

Comment 1 Karl Pickett 2009-04-03 15:12:42 UTC
I'm getting this too trying to create a profile.

evolution:18459): camel-local-provider-WARNING **: spool summary - not loading anything

Create profile with karl.pickett TELEMATE tm-mail
libexchangemapi-Message: exchange-mapi-connection.c:2880: exchange_mapi_create_profile: lock(connect_lock)
Logging into the server... succeeded 
libexchangemapi-Message: exchange-mapi-connection.c:146: exchange_mapi_connection_close: lock(connect_lock)
libexchangemapi-Message: exchange-mapi-connection.c:149: exchange_mapi_connection_close: unlock(connect_lock)
libexchangemapi-Message: exchange-mapi-connection.c:130: exchange_mapi_connection_new: lock(connect_lock)

exchange-mapi-connection.c:75: Entering mapi_profile_load 
Loading profile karl.pickett@TELEMATE 
exchange-mapi-connection.c:116: Leaving mapi_profile_load libexchangemapi-Message: exchange-mapi-connection.c:133: exchange_mapi_connection_new: unlock(connect_lock)
libexchangemapi-Message: 
exchange-mapi-connection.c:138: exchange_mapi_connection_new: Connected 
libexchangemapi-Message: exchange-mapi-folder.c:134: exchange_mapi_peek_folder_list: lock(folder_lock)

exchange-mapi-connection.c:2666: Entering exchange_mapi_get_folders_list libexchangemapi-Message: exchange-mapi-connection.c:2668: exchange_mapi_get_folders_list: lock(connect_lock)
Segmentation fault

Comment 2 Thomas M Steenholdt 2009-04-07 00:09:00 UTC
Experiencing same exact problem here, using exchange-mapi to connect to an Exchange 2003 server

Comment 3 Gianluca Cecchi 2009-04-08 08:25:05 UTC
The same here using evolution-mapi.
Server should be exchange 2003
It seems it connects, as I see a list of subfolders that indeed are on my mailbox, but then it exits. I don't see the segfault message at the end.
evolution simply closes

If I put inside a wrong password, instead I correctly get the error window with:
Authentication failed.
MapiLogonProvider:MAPI_E_LOGON_FAILED

With correct password I get:
[gcecchi@tekkafedora ~]$ evolution 
** (evolution:3510): DEBUG: Loading Exchange MAPI Plugin 

** (evolution:3510): DEBUG: MAPI listener is constructed with 0 listed MAPI accounts 
** (evolution:3510): DEBUG: mailto URL command: evolution --component=mail %s
** (evolution:3510): DEBUG: mailto URL program: evolution
e-data-server-ui-Message: Unable to find password(s) in keyring (Keyring reports: No matching results)
e-data-server-ui-Message: Key file does not have group 'Passwords-ExchangeMAPI'
Create profile with USER DOMAIN EXCHANGE_SERVER
libexchangemapi-Message: exchange-mapi-connection.c:2880: exchange_mapi_create_profile: lock(connect_lock)
Logging into the server... succeeded 
libexchangemapi-Message: exchange-mapi-connection.c:146: exchange_mapi_connection_close: lock(connect_lock)
libexchangemapi-Message: exchange-mapi-connection.c:149: exchange_mapi_connection_close: unlock(connect_lock)
libexchangemapi-Message: exchange-mapi-connection.c:130: exchange_mapi_connection_new: lock(connect_lock)

exchange-mapi-connection.c:75: Entering mapi_profile_load 
Loading profile USER@DOMAIN
exchange-mapi-connection.c:116: Leaving mapi_profile_load libexchangemapi-Message: exchange-mapi-connection.c:133: exchange_mapi_connection_new: unlock(connect_lock)
libexchangemapi-Message: 
exchange-mapi-connection.c:138: exchange_mapi_connection_new: Connected 
libexchangemapi-Message: exchange-mapi-folder.c:134: exchange_mapi_peek_folder_list: lock(folder_lock)

exchange-mapi-connection.c:2666: Entering exchange_mapi_get_folders_list libexchangemapi-Message: exchange-mapi-connection.c:2668: exchange_mapi_get_folders_list: lock(connect_lock)

|---+ Attività       : (Container class: IPF.Task CCB45C0000000001) UnRead : 0 Total : 0 
|---+ Aule informatizzate : (Container class: IPF.Note 15DC770000000001) UnRead : 0 Total : 46 
|---+ Backup          : (Container class: IPF.Note 01B55C0000000001) UnRead : 0 Total : 63 
|---+ BEIC            : (Container class: IPF.Note 7B061D0100000001) UnRead : 0 Total : 40 
|---+ Bladelogic      : (Container class: IPF.Note 224B800000000001) UnRead : 0 Total : 33 
|---+ Bozze           : (Container class: IPF.Note C9B45C0000000001) UnRead : 0 Total : 2 
|---+ Calendario      : (Container class: IPF.Appointment C7B45C0000000001) UnRead : 0 Total : 2 
|---+ Comunicazioni   : (Container class: IPF.Note 26806E0000000001) UnRead : 0 Total : 30 
|---+ Contatti        : (Container class: IPF.Contact C8B45C0000000001) UnRead : 0 Total : 0 
|---+ datacenter      : (Container class: IPF.Note EA855F0000000001) UnRead : 0 Total : 9 
|---+ DB              : (Container class: IPF.Note 25806E0000000001) UnRead : 0 Total : 2 
|---+ Deploy          : (Container class: IPF.Note 24806E0000000001) UnRead : 0 Total : 3 
|---+ Diario          : (Container class: IPF.Journal CAB45C0000000001) UnRead : 0 Total : 0 
|---+ Drafts          : (Container class: IPF.Note 03B55C0000000001) UnRead : 0 Total : 9 
|---+ Gian            : (Container class: IPF.Note B8F2660000000001) UnRead : 0 Total : 29 
|---+ HPTC            : (Container class: IPF.Note EB855F0000000001) UnRead : 0 Total : 11 
|---+ License-Support : (Container class: IPF.Note 2B806E0000000001) UnRead : 0 Total : 87 
|---+ Linux           : (Container class: IPF.Note 23806E0000000001) UnRead : 0 Total : 12 
|---+ Mgmt            : (Container class: IPF.Note EC855F0000000001) UnRead : 0 Total : 27 
|---+ tests           : (Container class: IPF.Note 1F03750000000001) UnRead : 0
Total : 5
[gcecchi@tekkafedora ~]$ echo $?
1
[gcecchi@tekkafedora ~]$ rpm -qa|egrep "evolution|openchange"
evolution-help-2.26.0-2.fc11.noarch
evolution-mapi-0.26.0.1-1.fc11.x86_64
evolution-perl-2.26.0-2.fc11.x86_64
evolution-2.26.0-2.fc11.x86_64
openchange-0.8.2-1.fc11.x86_64
evolution-data-server-2.26.0-1.fc11.x86_64

Comment 4 Michael Young 2009-04-08 12:21:48 UTC
I get the following segfault (i386)
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xb4efeb70 (LWP 2630)]
mapi_object_table_init (mem_ctx=0xb595d4e8, obj_table=0xb4efdfac)
    at libmapi/mapi_object.c:311
311             if (table->bookmark == NULL) {
(gdb) where
#0  mapi_object_table_init (mem_ctx=0xb595d4e8, obj_table=0xb4efdfac)
    at libmapi/mapi_object.c:311
#1  0x00ed724f in GetHierarchyTable (obj_container=0xb4efdfc0,
    obj_table=0xb4efdfac, TableFlags=0 '\0', RowCount=0xb4efdfdc)
    at libmapi/IMAPIContainer.c:270
#2  0x00e9cd3d in get_child_folders (mem_ctx=<value optimized out>,
    folder_hier=<value optimized out>, parent=0xb4efe09c,
    folder_id=15181634343865942056, mapi_folders=0xb4efe16c)
    at exchange-mapi-connection.c:2455
#3  0x00e9d833 in exchange_mapi_get_folders_list (mapi_folders=0xb4efe16c)
    at exchange-mapi-connection.c:2723
#4  0x016279b2 in mapi_folders_sync (ex=<value optimized out>,
    store=<value optimized out>) at camel-mapi-store.c:1115
#5  mapi_get_folder_info (ex=<value optimized out>,
    store=<value optimized out>) at camel-mapi-store.c:1219
#6  0x076e0a0c in camel_store_get_folder_info (store=0x82dfc98, top=0x0,
    flags=7, ex=0x82dacc4) at camel-store.c:894
#7  0x0158912c in get_folderinfo_exec (m=0x82dacb0) at mail-ops.c:1069
#8  0x01585df9 in mail_msg_proxy (msg=0x82dacb0) at mail-mt.c:520
#9  0x00ab71bf in g_thread_pool_thread_proxy (data=0x8346f00)
    at gthreadpool.c:265
#10 0x00ab5b6f in g_thread_create_proxy (data=0x8346f58) at gthread.c:635
#11 0x009ff965 in start_thread (arg=0xb4efeb70) at pthread_create.c:297
#12 0x0093483e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Comment 5 Brad Hards 2009-04-15 02:01:03 UTC
Can you (each) try running the openchangeclient command line application (just --mailbox should be enough to duplicate the behaviour). 

You might need to point openchangeclient at the right profile database - I think evolution creates its own.

Comment 6 Gianluca Cecchi 2009-04-15 09:38:11 UTC
I had not installed the openchange-client package before.
Anyway I installed it and ran:
[gcecchi@tekkafedora ~]$ openchangeclient -m -f /home/gcecchi/.evolution/mapi-profiles.ldb
+ Mailbox - Cecchi Gianluca
|---+ Attività       :                      (Total: 0 / Unread: 0 - Container class: IPF.Task) [FID: 0xccb45c0000000001]
|---+ Aule informatizzate :                      (Total: 46 / Unread: 0 - Container class: IPF.Note) [FID: 0x15dc770000000001]
|---+ Backup          :                      (Total: 63 / Unread: 0 - Container class: IPF.Note) [FID: 0x01b55c0000000001]
|---+ BEIC            :                      (Total: 40 / Unread: 0 - Container class: IPF.Note) [FID: 0x7b061d0100000001]
|---+ Bladelogic      :                      (Total: 33 / Unread: 0 - Container class: IPF.Note) [FID: 0x224b800000000001]
|---+ Bozze           :                      (Total: 2 / Unread: 0 - Container class: IPF.Note) [FID: 0xc9b45c0000000001]
|---+ Calendario      :                      (Total: 2 / Unread: 0 - Container class: IPF.Appointment) [FID: 0xc7b45c0000000001]
|---+ Comunicazioni   :                      (Total: 30 / Unread: 0 - Container class: IPF.Note) [FID: 0x26806e0000000001]
|---+ Contatti        :                      (Total: 0 / Unread: 0 - Container class: IPF.Contact) [FID: 0xc8b45c0000000001]
|---+ datacenter      :                      (Total: 9 / Unread: 0 - Container class: IPF.Note) [FID: 0xea855f0000000001]
|---+ DB              :                      (Total: 2 / Unread: 0 - Container class: IPF.Note) [FID: 0x25806e0000000001]
|---+ Deploy          :                      (Total: 3 / Unread: 0 - Container class: IPF.Note) [FID: 0x24806e0000000001]
|---+ Diario          :                      (Total: 0 / Unread: 0 - Container class: IPF.Journal) [FID: 0xcab45c0000000001]
|---+ Drafts          :                      (Total: 9 / Unread: 0 - Container class: IPF.Note) [FID: 0x03b55c0000000001]
|---+ Gian            :                      (Total: 29 / Unread: 0 - Container class: IPF.Note) [FID: 0xb8f2660000000001]
|---+ HPTC            :                      (Total: 11 / Unread: 0 - Container class: IPF.Note) [FID: 0xeb855f0000000001]
|---+ License-Support :                      (Total: 88 / Unread: 0 - Container class: IPF.Note) [FID: 0x2b806e0000000001]
|---+ Linux           :                      (Total: 12 / Unread: 0 - Container class: IPF.Note) [FID: 0x23806e0000000001]
|---+ Mgmt            :                      (Total: 27 / Unread: 0 - Container class: IPF.Note) [FID: 0xec855f0000000001]
|   |---+ tests           :                      (Total: 5 / Unread: 0 - Container class: IPF.Note) [FID: 0x1f03750000000001]
|---+ Nagios          :                      (Total: 36 / Unread: 0 - Container class: IPF.Note) [FID: 0x2ef3660000000001]
|---+ Note            :                      (Total: 0 / Unread: 0 - Container class: IPF.StickyNote) [FID: 0xcbb45c0000000001]
|---+ Oracle          :                      (Total: 64 / Unread: 0 - Container class: IPF.Note) [FID: 0xed855f0000000001]
|---+ Polyserve       :                      (Total: 44 / Unread: 0 - Container class: IPF.Note) [FID: 0x2e06870000000001]
|---+ Posta eliminata :                      (Total: 748 / Unread: 726 - Container class: IPF.Note) [FID: 0xe0f45d0000000001]
|---+ Posta in arrivo :                      (Total: 2330 / Unread: 745 - Container class: IPF.Note) [FID: 0xddf45d0000000001]
|---+ Posta in uscita :                      (Total: 0 / Unread: 0 - Container class: IPF.Note) [FID: 0xdef45d0000000001]
|---+ Posta indesiderata :                      (Total: 0 / Unread: 0 - Container class: IPF.Note) [FID: 0xb6038d0000000001]
|---+ Posta inviata   :                      (Total: 17 / Unread: 0 - Container class: IPF.Note) [FID: 0xdff45d0000000001]
|---+ Presenze        :                      (Total: 2 / Unread: 0 - Container class: IPF.Note) [FID: 0xee855f0000000001]
|---+ Radius          :                      (Total: 23 / Unread: 0 - Container class: IPF.Note) [FID: 0x14dc770000000001]
|---+ RHN Alerts      :                      (Total: 53 / Unread: 0 - Container class: IPF.Note) [FID: 0x5a51b60000000001]
|---+ SAN             :                      (Total: 44 / Unread: 0 - Container class: IPF.Note) [FID: 0x22806e0000000001]
|---+ Sent            :                      (Total: 746 / Unread: 0 - Container class: IPF.Note) [FID: 0xdcb45c0000000001]
|---+ Server          :                      (Total: 26 / Unread: 0 - Container class: IPF.Note) [FID: 0x27806e0000000001]
|---+ Trash           :                      (Total: 846 / Unread: 468 - Container class: IPF.Note) [FID: 0xdbb45c0000000001]
|---+ Ugov            :                      (Total: 15 / Unread: 0 - Container class: IPF.Note) [FID: 0x2f06870000000001]
|---+ Varie           :                      (Total: 2 / Unread: 0 - Container class: IPF.Note) [FID: 0x28806e0000000001]
|---+ Virtual         :                      (Total: 165 / Unread: 0 - Container class: IPF.Note) [FID: 0xef855f0000000001]
|---+ Zenoss Messages :                      (Total: 157 / Unread: 6 - Container class: IPF.Note) [FID: 0xb757af0000000001]
    mailbox                  : MAPI_E_SUCCESS (0x0)
[gcecchi@tekkafedora ~]$ echo $?
0

What next?
One question: it didn't ask any password... is it embedded/encrypted inside the ldb file?

Comment 7 Brad Hards 2009-04-15 09:54:32 UTC
Gianluca Cecchi:
The password can be embedded. I'm not sure if that is how evolution does it.

The openchange tools appear to work OK for you, so I think the problem is in evolution. However your bug report is not the same (e.g. no backtrace) so I'd like to see others report on this.

Brad

Comment 8 Gianluca Cecchi 2009-04-15 10:30:25 UTC
The fact is that evolution crashes as soon as I press OK in password field window during account setup. Anyway I didn't check the box "remember this password" inside the password prompt window... 
and doing a "strings" command against the evolution ldb file I can see the password in clear... very bad in my opinion....  
In the mean time I confirm that I can also successfully send e-mails from openchangeclient, to both internal and external addresses, with commands such as:

1) e-mail to myself with displayname as the --to field
openchangeclient -m -f /home/gcecchi/.evolution/mapi-profiles.ldb -S --to="Cecchi Gianluca" --subject=TEST --body="Mail di test"

2) e-mail to myself with my Exchange Alias (aka username) as the --to field
openchangeclient -m -f /home/gcecchi/.evolution/mapi-profiles.ldb -S --to="username" --subject=TEST --body="Mail di test"

3) e-mail to an external address of mine
openchangeclient -m -f /home/gcecchi/.evolution/mapi-profiles.ldb -S --to=external.address --subject=TEST --body="Mail di test"

Do I have to open the bug against evolution or some other component, or is it your task?
Running evolution from command line and running "strace -p " against its pid, it shows a segfault at the end when I press OK in password field... just after the list of folders... Do I have to send it and/or install evolution-debug package...?

Gianluca

Comment 9 Brad Hards 2009-04-15 11:21:57 UTC
Gianluca: I think you are confusing this bug report by introducing a number of different issues. In any case, the issue doesn't appear to be in openchange, so I'm no longer concerned.

Comment 10 Gianluca Cecchi 2009-04-15 13:21:52 UTC
Brad: I think I'm not confusing anything; perhaps you are confusing what I write though...
This bug number opens with
"Description of problem:
When using Evolution with the evolution-mapi plugin, Evolution crashes after
clicking the "Authenticate" button during account setup.  The crash only occurs
if a valid server and auth credentials are supplied.
"
that is the exact behaviour I'm detecting, so instead of opening a new bug I added my situation.
In fact the bug is for evolution-mapi, not for openchange-client.
As you asked to test the openchangeclient connectivity, I reported it.
I not even had openchangeclient installed at all, before you asked for test...

What are the "different" issues I'm introducing?
If you are referring to the password weakness design, I reported it because I don't know if it is peculiar with the evolution-mapi component or for evolution itself for all kinds of account types....
I don't know the internals of evolution, so that I don't know if I have to report the security issue to evolution-mapi component or evolution or anything else.
Let me know, you or anyone else, and I will post a new bugzilla entry for that.

Comment 11 Michael Young 2009-04-16 09:36:27 UTC
The crash seems to be fixed for me in the latest set of rawhide packages
evolution-2.26.1-2.fc11.i586
evolution-mapi-0.26.1-1.fc11.i586
openchange-0.8.2-1.fc11.i586

Comment 12 Gianluca Cecchi 2009-04-16 10:08:53 UTC
I confirm that it works also for me in x86_64 environment (after evolution-mapi today update; yesterday openchange update didn't change behaviour):
[gcecchi@tekkafedora ~]$ rpm -qa|egrep "evolution|openchange"
evolution-mapi-0.26.1-1.fc11.x86_64
openchange-client-0.8.2-1.fc11.x86_64
evolution-data-server-2.26.1-1.fc11.x86_64
evolution-perl-2.26.1-2.fc11.x86_64
evolution-help-2.26.1-2.fc11.noarch
openchange-0.8.2-1.fc11.x86_64
evolution-2.26.1-2.fc11.x86_64

Comment 13 Matthew Barnes 2009-04-18 18:33:22 UTC
Thanks for the updates.  Closing as FIXED.

Comment 14 joe humphrey 2010-03-08 23:55:16 UTC
Was there ever any resolution on this?

Both 32 and 64 bit versions with standard repos are crashing on "Authenticate". 

evolution-exchange-2.26.3-2.fc11.i586
evolution-2.26.3-1.fc11.i586
openchange-0.8.2-2.fc11.i586
evolution-mapi-0.26.2-1.fc11.i586
evolution-data-server-2.26.3-2.fc11.i586
evolution-perl-2.26.3-1.fc11.i586


From _64

evolution-2.26.3-1.fc11.x86_64
evolution-mapi-0.26.2-1.fc11.x86_64
evolution-exchange-2.26.3-2.fc11.x86_64
evolution-perl-2.26.3-1.fc11.x86_64
evolution-data-server-doc-2.26.3-2.fc11.noarch
evolution-help-2.26.3-1.fc11.noarch
evolution-data-server-devel-2.26.3-2.fc11.x86_64
evolution-data-server-2.26.3-2.fc11.x86_64

No openchange on x_64

Transaction Check Error:
  file /usr/lib64/libmapi.so.0 from install of openchange-0.8.2-2.fc11.x86_64 conflicts with file from package libmapi-6.30.10-2.fc11.x86_64

Comment 15 Alejandro Gajardo Toloza 2010-07-27 14:40:07 UTC
any resolution? :(
Fedora 13 x86 crash when "Authenticate"

[root@chileno ~]# rpm -qa|egrep "evolution|openchange"
evolution-perl-2.30.2-1.fc13.i686
openchange-0.9-2.fc13.i686
evolution-data-server-devel-2.30.2-2.fc13.i686
evolution-mapi-0.30.2.1-1.fc13.i686
evolution-exchange-2.30.2-1.fc13.i686
evolution-devel-2.30.2-1.fc13.i686
evolution-conduits-2.30.2-1.fc13.i686
evolution-2.30.2-1.fc13.i686
evolution-data-server-2.30.2-2.fc13.i686

Thanks!
Alejandro Gajardo

Comment 16 angelfck2809 2010-09-16 07:33:31 UTC
I opened a new bug report because obviously this is far from fixed. 

https://bugzilla.redhat.com/show_bug.cgi?id=634359

even compiling the 0.30.3 mapi from source brings an error:

http://ftp.gnome.org/pub/GNOME/sources/evolution-mapi/0.30/evolution-mapi-0.30.3.tar.gz

something is definitely foul

Comment 17 Jeff Raber 2010-12-02 21:53:59 UTC
Anyone still seeing the 'crash on Authenticate' bug, please test the latest openchange build that is currently in updates-testing which fixes a similar crash.

See bug 602661 for more info.


Note You need to log in before you can comment on or make changes to this bug.